at least for the moment.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3748
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fomit-frame-pointer -g
noinst_HEADERS = \
- core_arch.h \
- core_arch_asm.h
+ core_arch.h
noinst_LIBRARIES = libarch.a
#ifndef __AMD64_CORE_ARCH_H
#define __AMD64_CORE_ARCH_H
-#include "core_arch_asm.h" // arch-specific asm stuff
-
#include "libvex.h"
#include "libvex_guest_amd64.h"
+++ /dev/null
-/*--------------------------------------------------------------------*/
-/*--- amd64/core_arch_asm.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_ASM_H
-#define __AMD64_CORE_ARCH_ASM_H
-
-// Print a constant from asm code.
-#define OYNK(nnn) push %r8 ; push %r9 ; push %r10; push %r11; \
- push %rax; push %rbx; push %rcx; push %rdx; \
- push %rsi; push %rdi; \
- movl $nnn, %edi; call VG_(oynk); \
- pop %rdi; pop %rsi; pop %rdx; pop %rcx; \
- pop %rbx; pop %rax; pop %r11; pop %r10; \
- pop %r9 ; pop %r8
-
-#endif // __AMD64_CORE_ARCH_ASM_H
-
-/*--------------------------------------------------------------------*/
-/*--- end ---*/
-/*--------------------------------------------------------------------*/
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fomit-frame-pointer -g
noinst_HEADERS = \
- core_arch.h \
- core_arch_asm.h
+ core_arch.h
noinst_LIBRARIES = libarch.a
#ifndef __ARM_CORE_ARCH_H
#define __ARM_CORE_ARCH_H
-#include "core_arch_asm.h" // arch-specific asm stuff
-
#include "libvex.h"
#include "libvex_guest_arm.h"
+++ /dev/null
-/*--------------------------------------------------------------------*/
-/*--- arm/core_arch_asm.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_ASM_H
-#define __ARM_CORE_ARCH_ASM_H
-
-#if 0
-/* Debugging hack for assembly code ... sigh. */
-#if 0
-#define OYNK(nnn) pushal; pushl $nnn; call VG_(oynk) ; addl $4,%esp; popal
-#else
-#define OYNK(nnn)
-#endif
-
-#if 0
-#define OYNNK(nnn) pushal; pushl $nnn; call VG_(oynk) ; addl $4,%esp; popal
-#else
-#define OYNNK(nnn)
-#endif
-#endif
-
-#endif // __ARM_CORE_ARCH_ASM_H
-
-/*--------------------------------------------------------------------*/
-/*--- end ---*/
-/*--------------------------------------------------------------------*/
AM_CFLAGS = $(WERROR) -Wmissing-prototypes -Winline -Wall -Wshadow -O -g
noinst_HEADERS = \
- core_arch.h \
- core_arch_asm.h
+ core_arch.h
noinst_LIBRARIES = libarch.a
#ifndef __X86_CORE_ARCH_H
#define __X86_CORE_ARCH_H
-#include "core_arch_asm.h" // arch-specific asm stuff
-
#include "libvex.h"
#include "libvex_guest_x86.h"
+++ /dev/null
-/*--------------------------------------------------------------------*/
-/*--- x86/core_arch_asm.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_ASM_H
-#define __X86_CORE_ARCH_ASM_H
-
-#endif /* __X86_CORE_ARCH_ASM_H */
-
-/*--------------------------------------------------------------------*/
-/*--- end ---*/
-/*--------------------------------------------------------------------*/
-------------------------------------------------------------------
Guide to the directory structure
-------------------------------------------------------------------
+[16-May-2005: a lot of the stuff about arch/OS/platform specific code
+ is out of date in here. Hopefully, things have gotten simpler. --njn]
+
Valgrind has 2 main levels of genericity.
1. Multiple tools, plus the core.
#define VGO_(str) VGAPPEND(vgOS_,str)
#define VGP_(str) VGAPPEND(vgPlatform_,str)
+// Print a constant from asm code.
+// Nb: you'll need to define VG_(oynk)(Int) to use this.
+#if defined(VGA_x86)
+# define OYNK(nnn) pushal; pushl $nnn; call VG_(oynk) ; addl $4,%esp; popal
+#elif defined(VGA_amd64)
+# define OYNK(nnn) push %r8 ; push %r9 ; push %r10; push %r11; \
+ push %rax; push %rbx; push %rcx; push %rdx; \
+ push %rsi; push %rdi; \
+ movl $nnn, %edi; call VG_(oynk); \
+ pop %rdi; pop %rsi; pop %rdx; pop %rcx; \
+ pop %rbx; pop %rax; pop %r11; pop %r10; \
+ pop %r9 ; pop %r8
+#else
+# error Unknown architecture
+#endif
+
#endif /* ndef __TOOL_ASM_H */
/*--------------------------------------------------------------------*/