Home | History | Annotate | Download | only in m_sigframe

Lines Matching refs:frame

79 /*--- Signal frame layouts                                 ---*/
89 // frame is. Unfortunately, things like gcc's exception unwinding
90 // make assumptions about the locations of various parts of the frame,
147 VG_(printf)("frame=%#lx seg=%#lx-%#lx\n",
170 /* For tracking memory events, indicate the entire frame has been
194 struct rt_sigframe* frame;
209 frame = (struct rt_sigframe *) sp;
212 VG_(memset)(frame, 0, sizeof(*frame));
215 frame->pinfo = &frame->info;
216 frame->puc = &frame->uc;
218 frame->uc.uc_flags = 0;
219 frame->uc.uc_link = 0;
223 VG_TRACK( pre_mem_write, Vg_CoreSignal, tid, "signal handler frame",
235 VG_(memcpy)(&frame->info, siginfo, sizeof(*siginfo));
237 (Addr)&frame->info, sizeof(frame->info) );
239 frame->uc.uc_flags = 0;
240 frame->uc.uc_link = 0;
241 frame->uc.uc_stack = tst->altstack;
242 frame->uc.uc_sigmask = tst->sig_mask;
244 (Addr)(&frame->uc), sizeof(frame->uc) );
246 # define DO(gpr) frame->uc.uc_mcontext.gp_regs[VKI_PT_R0+gpr] \
254 frame->uc.uc_mcontext.gp_regs[VKI_PT_NIP] = tst->arch.vex.guest_CIA;
255 frame->uc.uc_mcontext.gp_regs[VKI_PT_MSR] = 0xf032; /* pretty arbitrary */
256 frame->uc.uc_mcontext.gp_regs[VKI_PT_ORIG_R3] = tst->arch.vex.guest_GPR3;
257 frame->uc.uc_mcontext.gp_regs[VKI_PT_CTR] = tst->arch.vex.guest_CTR;
258 frame->uc.uc_mcontext.gp_regs[VKI_PT_LNK] = tst->arch.vex.guest_LR;
259 frame->uc.uc_mcontext.gp_regs[VKI_PT_XER] = LibVEX_GuestPPC64_get_XER(
261 frame->uc.uc_mcontext.gp_regs[VKI_PT_CCR] = LibVEX_GuestPPC64_get_CR(
276 amd64-linux scheme for removing the stack frame. So instead be
280 frame->tramp[0] = 0; /* invalid */
281 frame->tramp[1] = 0; /* invalid */
283 (Addr)&frame->tramp, sizeof(frame->tramp));
286 VG_(discard_translations)( (Addr64)&frame->tramp[0],
287 sizeof(frame->tramp), "stack_mcontext" );
298 SET_SIGNAL_GPR(tid, 4, (Addr) &frame->info);
299 SET_SIGNAL_GPR(tid, 5, (Addr) &frame->uc);
301 SET_SIGNAL_GPR(tid, 6, (Addr) &frame->info);
308 priv = &frame->priv;
315 VG_(printf)("pushed signal frame; %%R1 now = %#lx, "
332 struct rt_sigframe *frame;
339 /* Check that the stack frame looks valid */
344 to just above the frame (ie, the previous frame). However, that
346 it. The frame is still sanity-checked using the priv->magicPI
349 frame = (struct rt_sigframe *)sp;
350 frame_size = sizeof(*frame);
351 priv = &frame->priv;
353 tst->sig_mask = frame->uc.uc_sigmask;
359 = frame->uc.uc_mcontext.gp_regs[VKI_PT_R0+gpr]
366 tst->arch.vex.guest_CIA = frame->uc.uc_mcontext.gp_regs[VKI_PT_NIP];
368 LibVEX_GuestPPC64_put_CR( frame->uc.uc_mcontext.gp_regs[VKI_PT_CCR],
371 tst->arch.vex.guest_LR = frame->uc.uc_mcontext.gp_regs[VKI_PT_LNK];
372 tst->arch.vex.guest_CTR = frame->uc.uc_mcontext.gp_regs[VKI_PT_CTR];
373 LibVEX_GuestPPC64_put_XER( frame->uc.uc_mcontext.gp_regs[VKI_PT_XER],