summaryrefslogtreecommitdiffstats
path: root/runtime/loc2c-runtime.h
diff options
context:
space:
mode:
authorsrinivasa <srinivasa>2008-01-18 08:47:31 +0000
committersrinivasa <srinivasa>2008-01-18 08:47:31 +0000
commitc7bcf4514f821aafb8540ebe60f308c0bad1f2b6 (patch)
tree0d2c23f22dc6af71500b33716c82a0c1d8bbbc67 /runtime/loc2c-runtime.h
parentaf3047833424103c4e17728e849670da865d37c3 (diff)
downloadsystemtap-steved-c7bcf4514f821aafb8540ebe60f308c0bad1f2b6.tar.gz
systemtap-steved-c7bcf4514f821aafb8540ebe60f308c0bad1f2b6.tar.xz
systemtap-steved-c7bcf4514f821aafb8540ebe60f308c0bad1f2b6.zip
From srinivasa@in.ibm.com, To make systemtap to work with register rename patch for x86/x86_64
Diffstat (limited to 'runtime/loc2c-runtime.h')
-rw-r--r--runtime/loc2c-runtime.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/runtime/loc2c-runtime.h b/runtime/loc2c-runtime.h
index 8dbff764..4674e399 100644
--- a/runtime/loc2c-runtime.h
+++ b/runtime/loc2c-runtime.h
@@ -75,7 +75,37 @@
})
-#if defined __i386__
+#if defined (STAPCONF_X86_UNIREGS) && defined (__i386__)
+
+#define dwarf_register_0(regs) regs->ax
+#define dwarf_register_1(regs) regs->cx
+#define dwarf_register_2(regs) regs->dx
+#define dwarf_register_3(regs) regs->bx
+#define dwarf_register_4(regs) ((long) &regs->sp)
+#define dwarf_register_5(regs) regs->bp
+#define dwarf_register_6(regs) regs->si
+#define dwarf_register_7(regs) regs->di
+
+#elif defined (STAPCONF_X86_UNIREGS) && defined (__x86_64__)
+
+#define dwarf_register_0(regs) regs->ax
+#define dwarf_register_1(regs) regs->dx
+#define dwarf_register_2(regs) regs->cx
+#define dwarf_register_3(regs) regs->bx
+#define dwarf_register_4(regs) regs->si
+#define dwarf_register_5(regs) regs->di
+#define dwarf_register_6(regs) regs->bp
+#define dwarf_register_7(regs) regs->sp
+#define dwarf_register_8(regs) regs->r8
+#define dwarf_register_9(regs) regs->r9
+#define dwarf_register_10(regs) regs->r10
+#define dwarf_register_11(regs) regs->r11
+#define dwarf_register_12(regs) regs->r12
+#define dwarf_register_13(regs) regs->r13
+#define dwarf_register_14(regs) regs->r14
+#define dwarf_register_15(regs) regs->r15
+
+#elif defined __i386__
/* The stack pointer is unlike other registers. When a trap happens in
kernel mode, it is not saved in the trap frame (struct pt_regs).