Rask, On Thursday 08 June 2006 20:12, Rask Ingemann Lambertsen wrote:
> Also, undo the change to arm_legitimate_address_p() arm.c. Hmmm.... > arm-elf-gcc -g -mswp-byte-writes -Wall -O2 -fomit-frame-pointer > -ffast-math -mthumb-interwork -isystem > /usr/lib/devkitpro/libnds/include -mcpu=arm9tdmi -mtune=arm9tdmi > -DARM9 -S arm9_main.c -o arm9_main.S arm9_main.c: In function 'test': > arm9_main.c:20: error: unable to generate reloads for: > (insn:HI 20 21 22 1 arm9_main.c:16 (set (mem/v:QI (post_inc:SI > (reg/v/f:SI 3 r3 [orig:102 p ] [102])) [0 S1 A8]) (subreg/s/u:QI > (reg:SI 2 r2 [orig:103 c.36 ] [103]) 0)) 157 {*arm_movqi_insn_swp} > (nil) (expr_list:REG_INC (reg/v/f:SI 3 r3 [orig:102 p ] [102]) > (nil))) > arm9_main.c:20: internal compiler error: in find_reloads, at > reload.c:3720 void test(void) { static unsigned char c = 20; volatile unsigned char * p; int i; p = (volatile unsigned char *) 0x08000000; for (i = 0; i < 1000; i++) *p++ = c; c = 40; c = c; } Without the change in arm_legitimate_address_p, we get post increment pointer into swpb. The non-working 'Q' constraint.... regards Wolfgang -- We're back to the times when men were men and wrote their own device drivers. (Linus Torvalds)