Bug 17865 - ARM conditional load/store multiple instructions unsupported in GAS?
Summary: ARM conditional load/store multiple instructions unsupported in GAS?
Alias: None
Product: binutils
Classification: Unclassified
Component: gas (show other bugs)
Version: 2.23
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
Depends on:
Reported: 2015-01-21 15:21 UTC by Konrad Schwarz
Modified: 2015-02-02 12:33 UTC (History)
1 user (show)

See Also:
Host: Cygwin
Target: ARMv7-A
Last reconfirmed:

Contains the rejected opcode (33 bytes, text/plain)
2015-01-21 15:21 UTC, Konrad Schwarz

Note You need to log in before you can comment on or make changes to this bug.
Description Konrad Schwarz 2015-01-21 15:21:58 UTC
Created attachment 8075 [details]
Contains the rejected opcode

How does GAS expect the 32-bit ARM instruction Load Multiple Decrement Before If Negative to be coded?  The ARM V7 Architecture manual indicates that it should coded as `ldmdbmi', yet my GAS reports `Error: bad instruction `ldmdbmi a1,{a2,a3}'' (see attachment ldm-testcase.S).

This GAS reports its version as
`GNU assembler (Sourcery CodeBench Lite 2013.05-39)'.

GAS accepts conditional load/store multiple instructions that omit the stack direction, e.g. `ldmmi', but rejects conditional load/store multiple instructions that include the `ia' suffix, a la `ldmiami'.

Note that objdump disassembles an integer constant corresponding to ldmdbmi as `ldmdbmi'.

In a related vein, does GAS support conditional ADRL pseudo-instructions?

I originally sent this directly to the mailing list, which may not have been correct.  My apologies for the duplication.
Comment 1 Konrad Schwarz 2015-02-02 12:33:55 UTC
    .syntax unified
must be specified.