From: Nicholas Nethercote Date: Sat, 11 Sep 2004 15:11:47 +0000 (+0000) Subject: Arch-abstraction: X-Git-Tag: svn/VALGRIND_3_0_0~1591 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb41aa73c3ad4497d81e4c0c9d3fa17577daf02d;p=thirdparty%2Fvalgrind.git Arch-abstraction: - abstract out some direct naming of registers git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2694 --- diff --git a/coregrind/toolfuncs.def b/coregrind/toolfuncs.def index 8d49f37ce4..d2f4cfbcd1 100644 --- a/coregrind/toolfuncs.def +++ b/coregrind/toolfuncs.def @@ -28,8 +28,7 @@ UCodeBlock*, instrument, UCodeBlock* cb, Addr orig_addr ## Finish up, print out any results, etc. `exitcode' is program's exit ## code. The shadow (if the `shadow_regs' need is set) can be found with -## VG_(get_shadow_archreg)(R_EBX), since %ebx holds the argument to the -## exit() syscall. +## VG_(get_exit_status_shadow)(). void, fini, Int exitcode diff --git a/coregrind/vg_memory.c b/coregrind/vg_memory.c index 995a697e2d..0e1cd84be0 100644 --- a/coregrind/vg_memory.c +++ b/coregrind/vg_memory.c @@ -677,10 +677,10 @@ Segment *VG_(next_segment)(Segment *s) tracked by the tool, and one of the specialised cases (eg. new_mem_stack_4) isn't used in preference */ REGPARM(1) -void VG_(unknown_esp_update)(Addr new_ESP) +void VG_(unknown_esp_update)(Addr new_SP) { - Addr old_ESP = VG_(get_archreg)(R_ESP); - Int delta = (Int)new_ESP - (Int)old_ESP; + Addr old_SP = VG_(get_archreg)(R_STACK_PTR); + Int delta = (Int)new_SP - (Int)old_SP; if (delta < -(VG_HUGE_DELTA) || VG_HUGE_DELTA < delta) { /* %esp has changed by more than HUGE_DELTA. We take this to mean @@ -694,12 +694,12 @@ void VG_(unknown_esp_update)(Addr new_ESP) happening. */ if (VG_(clo_verbosity) > 1) VG_(message)(Vg_UserMsg, "Warning: client switching stacks? " - "%%esp: %p --> %p", old_ESP, new_ESP); + "%%esp: %p --> %p", old_SP, new_SP); } else if (delta < 0) { - VG_TRACK( new_mem_stack, new_ESP, -delta ); + VG_TRACK( new_mem_stack, new_SP, -delta ); } else if (delta > 0) { - VG_TRACK( die_mem_stack, old_ESP, delta ); + VG_TRACK( die_mem_stack, old_SP, delta ); } } diff --git a/coregrind/vg_scheduler.c b/coregrind/vg_scheduler.c index cf4050c7b9..ab122eb040 100644 --- a/coregrind/vg_scheduler.c +++ b/coregrind/vg_scheduler.c @@ -2799,12 +2799,12 @@ void do__get_stack_info ( ThreadId tid, ThreadId which, StackInfo* si ) void VG_(set_return_from_syscall_shadow) ( ThreadId tid, UInt ret_shadow ) { - VG_(set_thread_shadow_archreg)(tid, R_EAX, ret_shadow); + VG_(set_thread_shadow_archreg)(tid, R_SYSCALL_RET, ret_shadow); } UInt VG_(get_exit_status_shadow) ( void ) { - return VG_(get_shadow_archreg)(R_EBX); + return VG_(get_shadow_archreg)(R_SYSCALL_ARG1); } void VG_(intercept_libc_freeres_wrapper)(Addr addr)