[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Th
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH] tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer |
Date: |
Mon, 26 Dec 2011 00:02:18 +0000 |
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 <address@hidden>
---
I did an extremely rough-and-ready benchmark with using a highreg
instead and it didn't seem to make any difference, so I've stuck
with using a lowreg as we do at the moment.
dyngen-exec.h | 2 +-
tcg/arm/tcg-target.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dyngen-exec.h b/dyngen-exec.h
index 3544372..09be9ea 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 48586c3..0035b47 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)
--
1.7.5.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer,
Peter Maydell <=