From: Nicholas Nethercote Date: Fri, 10 Jun 2005 23:09:45 +0000 (+0000) Subject: Killed coregrind/$ARCH/core_arch.h. Moved the relevant pieces into core.h X-Git-Tag: svn/VALGRIND_3_0_0~445 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=db94cee2af738ca8bd5084b92825e5f32a649db2;p=thirdparty%2Fvalgrind.git Killed coregrind/$ARCH/core_arch.h. Moved the relevant pieces into core.h for the moment. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3873 --- diff --git a/coregrind/amd64/Makefile.am b/coregrind/amd64/Makefile.am index 5248b709f2..c547581f5c 100644 --- a/coregrind/amd64/Makefile.am +++ b/coregrind/amd64/Makefile.am @@ -1,9 +1,6 @@ include $(top_srcdir)/Makefile.all.am include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am -noinst_HEADERS = \ - core_arch.h - noinst_LIBRARIES = libarch.a EXTRA_DIST = \ diff --git a/coregrind/amd64/core_arch.h b/coregrind/amd64/core_arch.h deleted file mode 100644 index 941ed321c2..0000000000 --- a/coregrind/amd64/core_arch.h +++ /dev/null @@ -1,62 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- Arch-specific stuff for the core. amd64/core_arch.h ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2000-2005 Nicholas Nethercote - njn@valgrind.org - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -#ifndef __AMD64_CORE_ARCH_H -#define __AMD64_CORE_ARCH_H - -#include "libvex.h" -#include "libvex_guest_amd64.h" - -/* --------------------------------------------------------------------- - Basic properties - ------------------------------------------------------------------ */ - -#define VGA_ELF_ENDIANNESS ELFDATA2LSB -#define VGA_ELF_MACHINE EM_X86_64 -#define VGA_ELF_CLASS ELFCLASS64 - -/* --------------------------------------------------------------------- - Interesting registers - ------------------------------------------------------------------ */ - -// Vex field names -#define VGA_INSTR_PTR guest_RIP -#define VGA_STACK_PTR guest_RSP -#define VGA_FRAME_PTR guest_RBP - -#define VGA_CLREQ_ARGS guest_RAX -#define VGA_CLREQ_RET guest_RDX - -#endif // __AMD64_CORE_ARCH_H - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/ - diff --git a/coregrind/arm/Makefile.am b/coregrind/arm/Makefile.am index 99b3d44419..c34202b277 100644 --- a/coregrind/arm/Makefile.am +++ b/coregrind/arm/Makefile.am @@ -1,9 +1,6 @@ include $(top_srcdir)/Makefile.all.am include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am -noinst_HEADERS = \ - core_arch.h - noinst_LIBRARIES = libarch.a EXTRA_DIST = \ diff --git a/coregrind/arm/core_arch.h b/coregrind/arm/core_arch.h deleted file mode 100644 index 084cecbbc7..0000000000 --- a/coregrind/arm/core_arch.h +++ /dev/null @@ -1,66 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- Arch-specific stuff for the core. arm/core_arch.h ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2000-2005 Nicholas Nethercote - njn@valgrind.org - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -#ifndef __ARM_CORE_ARCH_H -#define __ARM_CORE_ARCH_H - -#include "libvex.h" -#include "libvex_guest_arm.h" - -/* --------------------------------------------------------------------- - Basic properties - ------------------------------------------------------------------ */ - -#define VGA_ELF_ENDIANNESS ELFDATA2LSB -#define VGA_ELF_MACHINE EM_ARM -#define VGA_ELF_CLASS ELFCLASS32 - -/* --------------------------------------------------------------------- - Interesting registers - ------------------------------------------------------------------ */ -// Vex field names -// XXX: Not sure, but I think: -// r11 = frame pointer -// r12 = "implicit parameter" (neither caller-save, nor callee-save) -// r13 = stack pointer -// r14 = link register -// r15 = program counter -#define VGA_INSTR_PTR guest_R15 -#define VGA_STACK_PTR guest_R13 -#define VGA_FRAME_PTR guest_R11 - -#define VGA_CLREQ_ARGS guest_R0 -#define VGA_CLREQ_RET guest_R0 - -#endif // __ARM_CORE_ARCH_H - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/ diff --git a/coregrind/core.h b/coregrind/core.h index eb4f6b4e51..88158f1990 100644 --- a/coregrind/core.h +++ b/coregrind/core.h @@ -33,12 +33,53 @@ #define __CORE_H #include "tool.h" // tool stuff -#include "core_arch.h" // arch-specific stuff, eg. x86/core_arch.h + +#include "libvex.h" +#if defined(VGA_x86) +#include "libvex_guest_x86.h" +# define VGA_ELF_ENDIANNESS ELFDATA2LSB +# define VGA_ELF_MACHINE EM_386 +# define VGA_ELF_CLASS ELFCLASS32 +# define VGA_INSTR_PTR guest_EIP +# define VGA_STACK_PTR guest_ESP +# define VGA_FRAME_PTR guest_EBP +# define VGA_CLREQ_ARGS guest_EAX +# define VGA_CLREQ_RET guest_EDX +#elif defined(VGA_amd64) +# define VGA_ELF_ENDIANNESS ELFDATA2LSB +# define VGA_ELF_MACHINE EM_X86_64 +# define VGA_ELF_CLASS ELFCLASS64 +# define VGA_INSTR_PTR guest_RIP +# define VGA_STACK_PTR guest_RSP +# define VGA_FRAME_PTR guest_RBP +# define VGA_CLREQ_ARGS guest_RAX +# define VGA_CLREQ_RET guest_RDX +#elif defined(VGA_arm) +#define VGA_ELF_ENDIANNESS ELFDATA2LSB +#define VGA_ELF_MACHINE EM_ARM +#define VGA_ELF_CLASS ELFCLASS32 + // XXX: Not sure, but I think: + // r11 = frame pointer + // r12 = "implicit parameter" (neither caller-save, nor callee-save) + // r13 = stack pointer + // r14 = link register + // r15 = program counter +# define VGA_INSTR_PTR guest_R15 +# define VGA_STACK_PTR guest_R13 +# define VGA_FRAME_PTR guest_R11 +# define VGA_CLREQ_ARGS guest_R0 +# define VGA_CLREQ_RET guest_R0 +#else +# error Unknown arch +#endif + + + #include // for jmp_buf #include "pub_core_mallocfree.h" // for type 'ArenaId' -#include "pub_core_scheduler.h" // for types 'ThreadState', 'ThreadArchState' +#include "pub_core_scheduler.h" // for types 'ThreadArchState' /* --------------------------------------------------------------------- Global macros. @@ -158,6 +199,7 @@ extern const Int VG_(tramp_time_offset); // Returns False to indicate we cannot proceed further. extern Bool VGA_(getArchAndSubArch)( /*OUT*/VexArch*, /*OUT*/VexSubArch* ); + // Accessors for the ThreadArchState #define INSTR_PTR(regs) ((regs).vex.VGA_INSTR_PTR) #define STACK_PTR(regs) ((regs).vex.VGA_STACK_PTR) diff --git a/coregrind/x86/Makefile.am b/coregrind/x86/Makefile.am index a3e429618a..d4438ebc4a 100644 --- a/coregrind/x86/Makefile.am +++ b/coregrind/x86/Makefile.am @@ -1,9 +1,6 @@ include $(top_srcdir)/Makefile.all.am include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am -noinst_HEADERS = \ - core_arch.h - noinst_LIBRARIES = libarch.a EXTRA_DIST = \ diff --git a/coregrind/x86/core_arch.h b/coregrind/x86/core_arch.h deleted file mode 100644 index 2e6945b9d6..0000000000 --- a/coregrind/x86/core_arch.h +++ /dev/null @@ -1,68 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- Arch-specific stuff for the core. x86/core_arch.h ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2000-2005 Nicholas Nethercote - njn@valgrind.org - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -#ifndef __X86_CORE_ARCH_H -#define __X86_CORE_ARCH_H - -#include "libvex.h" -#include "libvex_guest_x86.h" - -/* --------------------------------------------------------------------- - Basic properties - ------------------------------------------------------------------ */ - -#define VGA_ELF_ENDIANNESS ELFDATA2LSB -#define VGA_ELF_MACHINE EM_386 -#define VGA_ELF_CLASS ELFCLASS32 - -/* --------------------------------------------------------------------- - Interesting registers - ------------------------------------------------------------------ */ - -// Vex field names -#define VGA_INSTR_PTR guest_EIP -#define VGA_STACK_PTR guest_ESP -#define VGA_FRAME_PTR guest_EBP - -#define VGA_CLREQ_ARGS guest_EAX -#define VGA_CLREQ_RET guest_EDX - -//extern const Char VG_(helper_wrapper_before)[]; /* in dispatch.S */ -//extern const Char VG_(helper_wrapper_return)[]; /* in dispatch.S */ - -//extern const Char VG_(helper_undefined_instruction)[]; -//extern const Char VG_(helper_INT)[]; -//extern const Char VG_(helper_breakpoint)[]; - -#endif // __X86_CORE_ARCH_H - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/