Lines Matching full:frame
40 #include <machine/frame.h>
62 dtrace_invop(uintptr_t addr, struct trapframe *frame, uintptr_t eax)
70 td->t_dtrace_trapframe = frame;
72 if ((rval = hdlr->dtih_func(addr, frame, eax)) != 0)
187 dtrace_trap(struct trapframe *frame, u_int type)
209 cpu_core[curcpu].cpuc_dtrace_illval = frame->tf_far;
215 frame->tf_elr += 4;
238 dtrace_load64(uint64_t *addr, struct trapframe *frame, u_int reg)
242 if (reg < nitems(frame->tf_x))
243 frame->tf_x[reg] = *addr;
245 frame->tf_lr = *addr;
250 dtrace_store64(uint64_t *addr, struct trapframe *frame, u_int reg)
254 if (reg < nitems(frame->tf_x))
255 *addr = frame->tf_x[reg];
257 *addr = frame->tf_lr;
263 dtrace_invop_start(struct trapframe *frame)
267 invop = dtrace_invop(frame->tf_elr, frame, frame->tf_x[0]);
274 sp = (register_t *)frame->tf_sp;
287 dtrace_store64(sp + 0, frame, arg1);
288 dtrace_store64(sp + 1, frame, arg2);
291 dtrace_load64(sp + 0, frame, arg1);
292 dtrace_load64(sp + 1, frame, arg2);
303 frame->tf_sp = (register_t)sp;
304 frame->tf_elr += INSN_SIZE;
309 frame->tf_sp -= (invop >> SUB_IMM_SHIFT) & SUB_IMM_MASK;
310 frame->tf_elr += INSN_SIZE;
315 frame->tf_elr += INSN_SIZE;
323 frame->tf_elr += data;
328 frame->tf_elr = frame->tf_lr;