From: Tom Hughes Date: Tue, 5 Apr 2005 18:36:05 +0000 (+0000) Subject: Removed bogus (UInt) casts from the amd64 signal frame builder and some X-Git-Tag: svn/VALGRIND_3_0_0~797 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67b984d85666c5a4dcb741b9c5002fc2b47e6277;p=thirdparty%2Fvalgrind.git Removed bogus (UInt) casts from the amd64 signal frame builder and some unecessary casts and code from the x86 signal frame builders. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3521 --- diff --git a/coregrind/amd64/signals.c b/coregrind/amd64/signals.c index 95e2ff5eea..2a7fa6275c 100644 --- a/coregrind/amd64/signals.c +++ b/coregrind/amd64/signals.c @@ -456,10 +456,9 @@ static Addr build_rt_sigframe(ThreadState *tst, if (flags & VKI_SA_RESTORER) frame->retaddr = (Addr)restorer; - else { - frame->retaddr - = (UInt)VG_(client_trampoline_code)+VG_(tramp_rt_sigreturn_offset); - } + else + frame->retaddr + = VG_(client_trampoline_code)+VG_(tramp_rt_sigreturn_offset); VG_(memcpy)(&frame->sigInfo, siginfo, sizeof(vki_siginfo_t)); diff --git a/coregrind/x86/signals.c b/coregrind/x86/signals.c index 88895d4682..cb324c56ae 100644 --- a/coregrind/x86/signals.c +++ b/coregrind/x86/signals.c @@ -464,6 +464,8 @@ static Addr build_sigframe(ThreadState *tst, Int sigNo = siginfo->si_signo; struct vki_ucontext uc; + vg_assert((flags & VKI_SA_SIGINFO) == 0); + esp -= sizeof(*frame); esp = ROUNDDN(esp, 16); frame = (struct sigframe *)esp; @@ -479,14 +481,9 @@ static Addr build_sigframe(ThreadState *tst, if (flags & VKI_SA_RESTORER) frame->retaddr = (Addr)restorer; - else { - if (flags & VKI_SA_SIGINFO) - frame->retaddr - = (UInt)VG_(client_trampoline_code)+VG_(tramp_rt_sigreturn_offset); - else - frame->retaddr - = (UInt)VG_(client_trampoline_code)+VG_(tramp_sigreturn_offset); - } + else + frame->retaddr + = VG_(client_trampoline_code)+VG_(tramp_sigreturn_offset); synth_ucontext(tst->tid, siginfo, mask, &uc, &frame->fpstate); @@ -514,6 +511,8 @@ static Addr build_rt_sigframe(ThreadState *tst, Addr esp = esp_top_of_frame; Int sigNo = siginfo->si_signo; + vg_assert((flags & VKI_SA_SIGINFO) != 0); + esp -= sizeof(*frame); esp = ROUNDDN(esp, 16); frame = (struct rt_sigframe *)esp; @@ -529,14 +528,9 @@ static Addr build_rt_sigframe(ThreadState *tst, if (flags & VKI_SA_RESTORER) frame->retaddr = (Addr)restorer; - else { - if (flags & VKI_SA_SIGINFO) - frame->retaddr - = (UInt)VG_(client_trampoline_code)+VG_(tramp_rt_sigreturn_offset); - else - frame->retaddr - = (UInt)VG_(client_trampoline_code)+VG_(tramp_sigreturn_offset); - } + else + frame->retaddr + = VG_(client_trampoline_code)+VG_(tramp_rt_sigreturn_offset); frame->psigInfo = (Addr)&frame->sigInfo; frame->puContext = (Addr)&frame->uContext;