diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-24 11:39:17 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-07-24 11:39:17 +0000 |
| commit | 9da3385a50dc0f359e6f46cade1a30678fce0a50 (patch) | |
| tree | 31db42ec16b028626349471db713873ff1c69280 | |
| parent | 3d2c829c692a383ad7859a044d57a76acd196e32 (diff) | |
| download | rockbox-9da3385a50dc0f359e6f46cade1a30678fce0a50.zip rockbox-9da3385a50dc0f359e6f46cade1a30678fce0a50.tar.gz rockbox-9da3385a50dc0f359e6f46cade1a30678fce0a50.tar.bz2 rockbox-9da3385a50dc0f359e6f46cade1a30678fce0a50.tar.xz | |
gcc 3.4 has a different constraint syntax
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4933 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/export/system.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h index cfb771d..0d601e3 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 |