PERFORCE change 125473 for review
Peter Wemm
peter at FreeBSD.org
Mon Aug 20 17:41:44 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=125473
Change 125473 by peter at peter_cheese on 2007/08/21 00:41:28
Remove nargs and indir_sysno stuff. We don't need it for
reconstructing the args on the stack anymore and it removes one
infrastructural difference to the linux version.
Affected files ...
.. //depot/projects/valgrind/coregrind/Makefile.am#3 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/makeargsize.sh#2 delete
.. //depot/projects/valgrind/coregrind/m_syswrap/makeargsize6.sh#3 delete
.. //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#3 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/sysargcount.c#3 delete
.. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-freebsd.S#3 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#4 edit
Differences ...
==== //depot/projects/valgrind/coregrind/Makefile.am#3 (text+ko) ====
@@ -209,8 +209,7 @@
m_dispatch/dispatch-x86-freebsd.S \
m_sigframe/sigframe-x86-freebsd.c \
m_syswrap/syscall-x86-freebsd.S \
- m_syswrap/syswrap-x86-freebsd.c \
- m_syswrap/sysargcount.c
+ m_syswrap/syswrap-x86-freebsd.c
libcoregrind_x86_freebsd_a_CPPFLAGS = $(AM_CPPFLAGS_X86_FREEBSD)
libcoregrind_x86_freebsd_a_CFLAGS = $(AM_CFLAGS_X86_FREEBSD)
==== //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#3 (text+ko) ====
@@ -60,8 +60,6 @@
#ifdef VGO_freebsd
UWord arg7;
UWord arg8;
- Word indir_sysno; /* -1 if indirect syscall() or __syscall() */
- UWord nargs;
#endif
}
SyscallArgs;
==== //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-freebsd.S#3 (text+ko) ====
@@ -81,8 +81,6 @@
#ifdef VGO_freebsd
UWord arg7; // 28
UWord arg8; // 32
- Word indir_sysno; // 36 (-1 if indirect syscall() or __syscall())
- UWord nargs; // 40
#endif
*/
==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#4 (text+ko) ====
@@ -318,11 +318,6 @@
the platform-specific in-guest-state format to the canonical
formats, and back. */
-#if defined(VGP_x86_freebsd)
-extern int sysargcount[]; /* HACK! HACK! */
-extern int numsysargcount; /* HACK! HACK! */
-#endif
-
static
void getSyscallArgsFromGuestState ( /*OUT*/SyscallArgs* canonical,
/*IN*/ VexGuestArchState* gst_vanilla )
@@ -374,25 +369,21 @@
switch (gst->guest_EAX) {
default:
canonical->sysno = gst->guest_EAX;
- canonical->indir_sysno = -1;
break;
case 198:
canonical->sysno = argv[1];
- canonical->indir_sysno = 198;
argv += 2;
break;
case 0:
canonical->sysno = argv[1];
- canonical->indir_sysno = 0;
argv += 1;
break;
}
- if (canonical->sysno < numsysargcount)
- canonical->nargs = sysargcount[canonical->sysno];
- else
- canonical->nargs = 0;
- memset(&canonical->arg1, 0xfe, (char *)&canonical->indir_sysno - (char *)&canonical->arg1);
- memcpy(&canonical->arg1, &argv[1], canonical->nargs * sizeof(UWord));
+ /*
+ * Blindly copy 8 arguments from the stack. Valgrind checks
+ * for initialized-ness elsewhere.
+ */
+ memcpy(&canonical->arg1, &argv[1], 8 * sizeof(UWord));
#else
# error "getSyscallArgsFromGuestState: unknown arch"
@@ -445,7 +436,6 @@
#elif defined(VGP_x86_freebsd) || defined(VGP_amd64_freebsd)
/* Nothing. Uses args passed out of band. */
-#endif
#else
# error "putSyscallArgsIntoGuestState: unknown arch"
More information about the p4-projects
mailing list