http://sourceware.org/bugzilla/show_bug.cgi?id=15623
Bug ID: 15623 Summary: smc + condition code is not enforced to be last instruction in IT block Product: binutils Version: 2.24 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: j...@bass-software.com Thumb SMC instruction needs to be the last instruction in an IT block just like e.g. BXJ. However this is not enforced for implicit IT blocks (-mimplicit-it=thumb) like it is for e.g. with BXJ. Using GNU assembler (GNU Binutils) 2.23.52.20130420: $ cat gas.s .text .thumb .syntax unified BXJCC R4 SWICC #5 $ arm-unknown-eabi-as -mcpu=cortex-a8 -mimplicit-it=thumb -o gas.o gas.s $ arm-unknown-eabi-objdump -d gas.o /tmp/gas.o: file format elf32-littlearm Disassembly of section .text: 00000000 <.text>: 0: bf38 it cc 2: f3c4 8f00 bxjcc r4 6: bf38 it cc 8: df05 svccc 5 => note two IT instructions as bxj needs to be the last instruction of an IT block. Same test for SMC: $ cat gas2.s .text .thumb .syntax unified SMCCC #5 SWICC #5 $ arm-unknown-eabi-as -mcpu=cortex-a8 -mimplicit-it=thumb -o gas2.o gas2.s $ arm-unknown-eabi-objdump -d gas2.o /tmp/gas.o: file format elf32-littlearm Disassembly of section .text: 00000000 <.text>: 0: bf3c itt cc 2: f7f5 8000 smccc #5 6: df05 svccc 5 However I expect rather to see: 00000000 <.text>: 0: bf38 it cc 2: f7f5 8000 smccc #5 6: bf38 it cc 8: df05 svccc 5 I.e. two IT instructions. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils