[opus] [PATCH 1/2] arm: Use the UAL syntax for ldr<cc>h instructions

Martin Storsjö martin at martin.st
Sat Feb 8 02:57:38 PST 2014


On Fri, 7 Feb 2014, Timothy B. Terriberry wrote:

> Martin Storsjo wrote:
>> This is required in order to build using the built-in assembler
>> in clang.
>
> These patches break the gcc build (with "Error: bad instruction").

Ah, right, sorry about that.

> Documentation I've seen is contradictory on which order ({cond}{size} or 
> {size}{cond}) is correct.

The reason you're finding contradictory information is that there's two 
syntaxes, the legacy syntax (where arm and thumb instructions have quite 
different syntaxes) and the new unified syntax (aka UAL, unified assembler 
language). Most modern tools default to interpreting the source as UAL 
(see e.g. 
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473j/dom1359731145130.html 
- the armasm tool defaults to this syntax as well), but gnu binutils 
defaults to the old syntax unless otherwise specified.

(Btw, what build setups actually use the original unconverted asm sources 
within opus?)

By injecting a ".syntax unified" at the start of the generated assembly 
sources, it works as intended with gnu binutils as well as clang. I'll 
post an updated patch that does this.

// Martin


More information about the opus mailing list