OSDN Git Service

Improvements to ARM assembler tests
authorAsiri Rathnayake <asiri.rathnayake@arm.com>
Fri, 5 Dec 2014 16:33:56 +0000 (16:33 +0000)
committerAsiri Rathnayake <asiri.rathnayake@arm.com>
Fri, 5 Dec 2014 16:33:56 +0000 (16:33 +0000)
commit3ad762170b8c0d9ec0ac066a29fe571264c2e69e
tree77b5c489524e0e655075d5f5ff41abea827b397e
parentdd6794f01dac8a80b2d630eff9e39a081d3515b3
Improvements to ARM assembler tests

No functional changes. Got myself bitten in r223113 when adding support for
modified immediate syntax (regressions reported by joerg@britannica.bec.de,
fixes in r223366 and r223381). Our assembler tests did not cover serveral
different syntax variants. This patch expands the test coverage to check for
the following cases:

1. Modified immediate operands may be expressed with expressions, as in #(4 * 2)
instead of #8.

2. Modified immediate operands may be _optionally_ prefixed by a '#' symbol or a
'$' symbol.

3. Certain instructions (e.g. ADD) support single input register variants;
[ADD r0, #mod_imm] is same as [ADD r0, r0, #mod_imm].

4. Certain instructions have aliases which convert plain immediates to modified
immediates. For an example, [ADD r0, -10] is not valid because -10 (in two's
complement) cannot be encoded as a modified immediate, but ARMInstrInfo.td
defines an alias which can transform this into a [SUB r0, 10].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223475 91177308-0d34-0410-b5e6-96231b3b80d8
test/MC/ARM/basic-arm-instructions.s