From 9da3385a50dc0f359e6f46cade1a30678fce0a50 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Sat, 24 Jul 2004 11:39:17 +0000 Subject: gcc 3.4 has a different constraint syntax git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4933 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/system.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/firmware/export/system.h b/firmware/export/system.h index cfb771d66b..0d601e3d47 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -49,25 +49,32 @@ extern void system_init(void); #define nop \ asm volatile ("nop") +/* gcc 3.4 changed the format of the constraints */ +#if (__GNUC__ >= 3) && (__GNUC_MINOR__ > 3) +#define I_CONSTRAINT "I08" +#else +#define I_CONSTRAINT "I" +#endif + #define or_b(mask, address) \ asm \ ("or.b\t%0,@(r0,gbr)" \ : \ - : /* %0 */ "I"((char)(mask)), \ + : /* %0 */ I_CONSTRAINT((char)(mask)), \ /* %1 */ "z"(address-GBR)) #define and_b(mask, address) \ asm \ ("and.b\t%0,@(r0,gbr)" \ : \ - : /* %0 */ "I"((char)(mask)), \ + : /* %0 */ I_CONSTRAINT((char)(mask)), \ /* %1 */ "z"(address-GBR)) #define xor_b(mask, address) \ asm \ ("xor.b\t%0,@(r0,gbr)" \ : \ - : /* %0 */ "I"((char)(mask)), \ + : /* %0 */ I_CONSTRAINT((char)(mask)), \ /* %1 */ "z"(address-GBR)) #ifndef SIMULATOR -- cgit v1.2.3