Lines Matching refs:frame

22 kinst_emulate(struct trapframe *frame, const struct kinst_probe *kp)  in kinst_emulate()  argument
38 frame->tf_x[reg] = frame->tf_elr + imm; in kinst_emulate()
44 frame->tf_x[reg] = (frame->tf_elr & ~0xfff) + imm; in kinst_emulate()
46 frame->tf_elr += INSN_SIZE; in kinst_emulate()
52 frame->tf_elr += imm << 2; in kinst_emulate()
61 res = (frame->tf_spsr & PSR_Z) != 0; in kinst_emulate()
64 res = (frame->tf_spsr & PSR_C) != 0; in kinst_emulate()
67 res = (frame->tf_spsr & PSR_N) != 0; in kinst_emulate()
70 res = (frame->tf_spsr & PSR_V) != 0; in kinst_emulate()
73 res = ((frame->tf_spsr & PSR_C) != 0) && in kinst_emulate()
74 ((frame->tf_spsr & PSR_Z) == 0); in kinst_emulate()
77 res = ((frame->tf_spsr & PSR_N) != 0) == in kinst_emulate()
78 ((frame->tf_spsr & PSR_V) != 0); in kinst_emulate()
81 res = ((frame->tf_spsr & PSR_Z) == 0) && in kinst_emulate()
82 (((frame->tf_spsr & PSR_N) != 0) == in kinst_emulate()
83 ((frame->tf_spsr & PSR_V) != 0)); in kinst_emulate()
92 frame->tf_elr += imm << 2; in kinst_emulate()
94 frame->tf_elr += INSN_SIZE; in kinst_emulate()
100 frame->tf_lr = frame->tf_elr + INSN_SIZE; in kinst_emulate()
101 frame->tf_elr += imm << 2; in kinst_emulate()
109 if (cond == 1 && frame->tf_x[reg] != 0) in kinst_emulate()
111 frame->tf_elr += imm << 2; in kinst_emulate()
112 else if (cond == 0 && frame->tf_x[reg] == 0) in kinst_emulate()
114 frame->tf_elr += imm << 2; in kinst_emulate()
116 frame->tf_elr += INSN_SIZE; in kinst_emulate()
126 if (cond == 1 && (frame->tf_x[reg] & (1 << bitpos)) != 0) in kinst_emulate()
128 frame->tf_elr += imm << 2; in kinst_emulate()
129 else if (cond == 0 && (frame->tf_x[reg] & (1 << bitpos)) == 0) in kinst_emulate()
131 frame->tf_elr += imm << 2; in kinst_emulate()
133 frame->tf_elr += INSN_SIZE; in kinst_emulate()
140 kinst_jump_next_instr(struct trapframe *frame, const struct kinst_probe *kp) in kinst_jump_next_instr() argument
142 frame->tf_elr = (register_t)((const uint8_t *)kp->kp_patchpoint + in kinst_jump_next_instr()
182 kinst_invop(uintptr_t addr, struct trapframe *frame, uintptr_t scratch) in kinst_invop() argument
201 frame->tf_spsr &= ~PSR_I; in kinst_invop()
203 return (kinst_jump_next_instr(frame, ks->kp)); in kinst_invop()
219 return (kinst_emulate(frame, kp)); in kinst_invop()
228 ks->status = frame->tf_spsr; in kinst_invop()
229 frame->tf_spsr |= PSR_I; in kinst_invop()
230 frame->tf_elr = (register_t)kp->kp_tramp; in kinst_invop()