From c7bcf4514f821aafb8540ebe60f308c0bad1f2b6 Mon Sep 17 00:00:00 2001 From: srinivasa Date: Fri, 18 Jan 2008 08:47:31 +0000 Subject: From srinivasa@in.ibm.com, To make systemtap to work with register rename patch for x86/x86_64 --- runtime/loc2c-runtime.h | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'runtime/loc2c-runtime.h') 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) ®s->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). -- cgit