https://sourceware.org/bugzilla/show_bug.cgi?id=27519
Bug ID: 27519 Summary: GNU AS does not support SUBSPL syntax Product: binutils Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: caij2003 at gmail dot com Target Milestone: --- According to "ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition", the subtraction instruction of registers has the following syntax: SUB{S}{<c>}{<q>} {<Rd>,} <Rn>, <Rm> {, <shift>} However, GNU AS does not support such syntax: $ cat foo.s subspl r3, r3, r8 $ arm-linux-gnueabihf-as foo.s -o gcc.o foo.s: Assembler messages: foo.s:2: Error: bad instruction `subspl r3,r3,r8' In the above code, PL is is one of possible condition codes for <c> in the SUB instruction. However, GAS supports a slightly different syntax: $ cat bar.s subpls r3, r3, r8 $ arm-linux-gnueabihf-as bar.s -o gcc.o $ arm-linux-gnueabihf-objdump -d gcc.o gcc.o: file format elf32-littlearm Disassembly of section .text: 00000000 <.text>: 0: 50533008 subspl r3, r3, r8 Note objdump prints subspl instead of subpls. Clang only supports the official syntax, so code written with the GNU syntax would not be compatible with Clang. Links: https://developer.arm.com/documentation/ddi0406/cd -- You are receiving this mail because: You are on the CC list for the bug.