]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
As part of the build process, generate pub/libvex_guest_offsets.h holding
authorJulian Seward <jseward@acm.org>
Tue, 8 Mar 2005 16:43:27 +0000 (16:43 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 8 Mar 2005 16:43:27 +0000 (16:43 +0000)
guest state offsets.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1008

VEX/Makefile
VEX/auxprogs/genoffsets.c [new file with mode: 0644]

index ab37aac29204a07f7bd845b4521ddcd6cc42e89a..f8583ab1fc1ca7cf7d072b93085d6caa78d6c9c3 100644 (file)
@@ -7,7 +7,8 @@ PUB_HEADERS =   pub/libvex_basictypes.h                 \
                pub/libvex_guest_x86.h                  \
                pub/libvex_guest_amd64.h                \
                pub/libvex_guest_arm.h                  \
-               pub/libvex_guest_ppc32.h
+               pub/libvex_guest_ppc32.h                \
+               pub/libvex_guest_offsets.h
 
 PRIV_HEADERS =         priv/host-x86/hdefs.h                   \
                priv/host-amd64/hdefs.h                 \
@@ -87,7 +88,9 @@ libvex.a: $(LIB_OBJS)
        ar clq libvex.a $(LIB_OBJS)
 
 clean:
-       rm -f $(LIB_OBJS) libvex.a vex test_main.o priv/main/vex_svnversion.h
+       rm -f $(LIB_OBJS) libvex.a vex test_main.o \
+               priv/main/vex_svnversion.h \
+               pub/libvex_guest_offsets.h
 
 version:
        rm -f priv/main/vex_svnversion.h
@@ -108,6 +111,10 @@ minidist: version
        @cat priv/main/vex_svnversion.h
        @echo
 
+pub/libvex_guest_offsets.h:
+       gcc -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
+       ./auxprogs/genoffsets > pub/libvex_guest_offsets.h
+
 
 ALL_HEADERS  = $(PUB_HEADERS) $(PRIV_HEADERS)
 ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
diff --git a/VEX/auxprogs/genoffsets.c b/VEX/auxprogs/genoffsets.c
new file mode 100644 (file)
index 0000000..7c80ec1
--- /dev/null
@@ -0,0 +1,36 @@
+
+#include <stdio.h>
+
+/* A program which generates various guest state offsets. */
+
+#include "../pub/libvex_basictypes.h"
+#include "../pub/libvex_guest_x86.h"
+
+Int main ( void )
+{
+  printf("#define OFFSET_x86_EAX %d\n", 
+         offsetof(VexGuestX86State,guest_EAX));
+
+  printf("#define OFFSET_x86_EBX %d\n", 
+         offsetof(VexGuestX86State,guest_EBX));
+
+  printf("#define OFFSET_x86_ECX %d\n", 
+         offsetof(VexGuestX86State,guest_ECX));
+
+  printf("#define OFFSET_x86_EDX %d\n", 
+         offsetof(VexGuestX86State,guest_EDX));
+
+  printf("#define OFFSET_x86_ESI %d\n", 
+         offsetof(VexGuestX86State,guest_ESI));
+
+  printf("#define OFFSET_x86_EDI %d\n", 
+         offsetof(VexGuestX86State,guest_EDI));
+
+  printf("#define OFFSET_x86_EBP %d\n", 
+         offsetof(VexGuestX86State,guest_EBP));
+
+  printf("#define OFFSET_x86_ESP %d\n", 
+         offsetof(VexGuestX86State,guest_ESP));
+
+  return 0;
+}