[AArch64] Add logical alias instructions to MC AsmParser
authorArnaud A. de Grandmaison <arnaud.degrandmaison@arm.com>
Thu, 10 Jul 2014 15:12:26 +0000 (15:12 +0000)
committerArnaud A. de Grandmaison <arnaud.degrandmaison@arm.com>
Thu, 10 Jul 2014 15:12:26 +0000 (15:12 +0000)
commitf643231163d2e897139b7dc1e1b53da4242b32b2
treea964f80e0036b3024a1559c1e7c1830c515846e4
parent350b78e5ea707ab8c4aaf430d70df1a495c2d1de
[AArch64] Add logical alias instructions to MC AsmParser

This patch teaches the AsmParser to accept some logical+immediate
instructions and convert them as shown:

  bic  Rd, Rn, #imm  ->  and Rd, Rn, #~imm
  bics Rd, Rn, #imm  ->  ands Rd, Rn, #~imm
  orn  Rd, Rn, #imm  ->  orr Rd, Rn, #~imm
  eon  Rd, Rn, #imm  ->  eor Rd, Rn, #~imm

Those instructions are an alternate syntax available to assembly coders,
and are needed in order to support code already compiling with some other
assemblers. For example, the bic construct is used by the linux kernel.

llvm-svn: 212722
llvm/lib/Target/AArch64/AArch64InstrFormats.td
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/test/MC/AArch64/alias-logicalimm.s [new file with mode: 0644]
llvm/test/MC/AArch64/basic-a64-diagnostics.s