diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2011-12-26 00:02:18 +0000 |
---|---|---|
committer | Andrzej Zaborowski <andrew.zaborowski@intel.com> | 2012-01-10 17:52:49 +0100 |
commit | 05b922dd0a1919c265361ca62902d6cdaea4cc36 (patch) | |
tree | d35b819a8d06ef357f67949f81b968e426a4bc60 | |
parent | 520a02f8b844152929817b686113aed27229d3a9 (diff) |
tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer
On ARM, in Thumb mode r7 is used for the framepointer; this meant
that we would fail to compile in debug mode because we were using r7
for TCG_AREG0. Shift to r6 instead to avoid this clash.
(Bug reported as LP:870990.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
-rw-r--r-- | dyngen-exec.h | 2 | ||||
-rw-r--r-- | tcg/arm/tcg-target.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/dyngen-exec.h b/dyngen-exec.h index 3544372a65..09be9ea7b4 100644 --- a/dyngen-exec.h +++ b/dyngen-exec.h @@ -31,7 +31,7 @@ #elif defined(_ARCH_PPC) #define AREG0 "r27" #elif defined(__arm__) -#define AREG0 "r7" +#define AREG0 "r6" #elif defined(__hppa__) #define AREG0 "r17" #elif defined(__mips__) diff --git a/tcg/arm/tcg-target.h b/tcg/arm/tcg-target.h index 48586c3e60..0035b471fe 100644 --- a/tcg/arm/tcg-target.h +++ b/tcg/arm/tcg-target.h @@ -78,7 +78,7 @@ typedef enum { enum { /* Note: must be synced with dyngen-exec.h */ - TCG_AREG0 = TCG_REG_R7, + TCG_AREG0 = TCG_REG_R6, }; static inline void flush_icache_range(unsigned long start, unsigned long stop) |