diff options
Diffstat (limited to 'src/base/elfcore.h')
-rw-r--r-- | src/base/elfcore.h | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/src/base/elfcore.h b/src/base/elfcore.h index 8193d42..34a96de 100644 --- a/src/base/elfcore.h +++ b/src/base/elfcore.h @@ -1,4 +1,3 @@ -// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- /* Copyright (c) 2005-2008, Google Inc. * All rights reserved. * @@ -38,11 +37,11 @@ extern "C" { #endif -/* We currently only support x86-32, x86-64, ARM, MIPS, PPC on Linux. +/* We currently only support x86-32, x86-64, ARM, and MIPS on Linux. * Porting to other related platforms should not be difficult. */ -#if (defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \ - defined(__mips__) || defined(__PPC__)) && defined(__linux) +#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) || \ + defined(__mips__)) && defined(__linux) #include <stdarg.h> #include <stdint.h> @@ -89,7 +88,7 @@ extern "C" { uint16_t ss, __ss; #endif } i386_regs; -#elif defined(__arm__) +#elif defined(__ARM_ARCH_3__) typedef struct arm_regs { /* General purpose registers */ #define BP uregs[11] /* Frame pointer */ #define SP uregs[13] /* Stack pointer */ @@ -109,21 +108,6 @@ extern "C" { unsigned long cp0_cause; unsigned long unused; } mips_regs; -#elif defined (__PPC__) - typedef struct ppc_regs { - #define SP uregs[1] /* Stack pointer */ - #define IP rip /* Program counter */ - #define LR lr /* Link register */ - unsigned long uregs[32]; /* General Purpose Registers - r0-r31. */ - double fpr[32]; /* Floating-Point Registers - f0-f31. */ - unsigned long rip; /* Program counter. */ - unsigned long msr; - unsigned long ccr; - unsigned long lr; - unsigned long ctr; - unsigned long xeq; - unsigned long mq; - } ppc_regs; #endif #if defined(__i386__) && defined(__GNUC__) @@ -245,7 +229,7 @@ extern "C" { (f).uregs.gs_base = (r).gs_base; \ (r) = (f).uregs; \ } while (0) -#elif defined(__arm__) && defined(__GNUC__) +#elif defined(__ARM_ARCH_3__) && defined(__GNUC__) /* ARM calling conventions are a little more tricky. A little assembly * helps in obtaining an accurate snapshot of all registers. */ |