I have come across a behavior that looks like a bug to me. If one of the inline assembler commands strbt, strht or strt is compiled without an optional offset, it is okay for Thumb2, but an error in ARM mode. I have created an example with compiler explorer:
https://godbolt.org/z/4x7z3r75b
Hello LLVM Team,
I have come across a behavior that looks like a bug to me. If one of the inline assembler commands strbt, strht or strt is compiled without an optional offset, it is okay for Thumb2, but an error in ARM mode. I have created an example with compiler explorer:
https://godbolt.org/z/4x7z3r75b
According to the documentation, the offset should be optional for both thumb mode and ARM mode:
https://developer.arm.com/documentation/ddi0403/d/Application-Level-Architecture/Instruction-Details/Alphabetical-list-of-ARMv7-M-Thumb-instructions/STRHT
https://developer.arm.com/documentation/ddi0406/c/Application-Level-Architecture/Instruction-Details/Alphabetical-list-of-instructions/STRHT?lang=en
GCC is fine without the offset in ARM-mode as well as in thumb-mode
Hello LLVM Team,
I have come across a behavior that looks like a bug to me. If one of the inline assembler commands strbt, strht or strt is compiled without an optional offset, it is okay for Thumb2, but an error in ARM mode. I have created an example with compiler explorer: https://godbolt.org/z/4x7z3r75b
According to the documentation, the offset should be optional for both thumb mode and ARM mode: https://developer.arm.com/documentation/ddi0403/d/Application-Level-Architecture/Instruction-Details/Alphabetical-list-of-ARMv7-M-Thumb-instructions/STRHT https://developer.arm.com/documentation/ddi0406/c/Application-Level-Architecture/Instruction-Details/Alphabetical-list-of-instructions/STRHT?lang=en
GCC is fine without the offset in ARM-mode as well as in thumb-mode