https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94220
Bug ID: 94220 Summary: libgcc FTB for ARM Thump when optimizing for size Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: npl at chello dot at CC: rearnsha at arm dot com Target Milestone: --- This issue was introduced with 6b9ce2b4eb49e3c930730c3721323349e2136b1a, the sections guarded with __OPTIMIZE_SIZE__ where apparently left out /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1139: Error: cannot honor width suffix -- `mul r2,r0' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1140: Error: cannot honor width suffix -- `sub r1,r1,r2' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1238: Error: MOV Rd, Rs with two low registers is not permitted on this architecture -- `mov work,dividend' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1239: Error: cannot honor width suffix -- `eor work,divisor' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1241: Error: cannot honor width suffix -- `mov curbit,#1' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1242: Error: cannot honor width suffix -- `mov result,#0' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1245: Error: cannot honor width suffix -- `neg divisor,divisor' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1249: Error: cannot honor width suffix -- `neg dividend,dividend' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1256: Error: MOV Rd, Rs with two low registers is not permitted on this architecture -- `mov r0,result' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1260: Error: cannot honor width suffix -- `neg r0,r0' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1351: Error: cannot honor width suffix -- `mul r2,r0' /tmp/b/.build/arm-none-eabi/src/gcc/libgcc/config/arm/lib1funcs.S:1352: Error: cannot honor width suffix -- `sub r1,r1,r2' (Fix is rather straightforward: add an 's' to every op)