Appears to be invalid code produced when -mthumb selected. Happens with gcc 4.1.1 and 4.2.2 when compiling with:
arm-rtems4.9-gcc -mcpu=arm7tdmi -mthumb -O2 -c /tmp/test1.c /tmp/cccISkv7.s: Assembler messages: /tmp/cccISkv7.s:205: Error: unshifted register required -- `eor r2,r3,r3,ROR#16' /tmp/cccISkv7.s:206: Error: unshifted register required -- `bic r2,r2,#0xff0000' /tmp/cccISkv7.s:208: Error: unshifted register required -- `eor r3,r3,r2,LSR#8' /tmp/cccISkv7.s:217: Error: unshifted register required -- `eor r3,r2,r2,ROR#16' /tmp/cccISkv7.s:218: Error: unshifted register required -- `bic r3,r3,#0xff0000' /tmp/cccISkv7.s:220: Error: unshifted register required -- `eor r2,r2,r3,LSR#8' /tmp/cccISkv7.s:236: Error: unshifted register required -- `eor r2,r3,r3,ROR#16 ..... Assembler was invoked as /opt/rtems-4.9/lib/gcc/arm-rtems4.9/4.2.2/../../../../arm-rtems4.9/bin/as -mcpu =arm7tdmi -mfpu=softfpa -o test1.o /tmp/cc7F7jPZ.s When I compile test2.c, it gives errors about duplicate type definitions. That is the same file with cpp comments removed. Strange. -- Summary: Illegal assembly on ARM/Thumb Product: gcc Version: 4.2.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: joel at gcc dot gnu dot org GCC target triplet: arm-unknown-rtems http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34436