Message ID | 1324857738-7916-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 05b922dd0a1919c265361ca62902d6cdaea4cc36 |
Headers | show |
Ping? (either I forgot to cc you, Andrzej, or the mailing list manager helpfully dropped you off the cc list again. Sorry.) -- PMM On 26 December 2011 00:02, Peter Maydell <peter.maydell@linaro.org> wrote: > 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> > --- > 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
On 9 January 2012 12:24, Peter Maydell <peter.maydell@linaro.org> wrote: > Ping? > > (either I forgot to cc you, Andrzej, or the mailing list manager helpfully > dropped you off the cc list again. Sorry.) Thank you, now applied. I've been in CC but my patch queue was moving slow, sorry. Cheers
On 10 January 2012 16:54, andrzej zaborowski <balrogg@gmail.com> wrote: > On 9 January 2012 12:24, Peter Maydell <peter.maydell@linaro.org> wrote: >> Ping? >> >> (either I forgot to cc you, Andrzej, or the mailing list manager helpfully >> dropped you off the cc list again. Sorry.) > > Thank you, now applied. Thanks. > I've been in CC but my patch queue was moving slow, sorry. I meant that the copy of the mail I got back from the list didn't have you on the CC list. Something between my end and the listserver seems to have the habit of dropping names off the CC list; the effect is that those people get the mail directly from me with the CC in the headers but the copy that goes via the listserver (ie that most people see) doesn't have them in the CC list. I have no idea why this happens; it means that I can't tell the difference between "I forgot to CC X" and "I did CC X and they got the patch but the listserver dropped the CC". -- PMM
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)
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> --- 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(-)