llvm-6502/lib
Arnaud A. de Grandmaison bdaa375556 [AArch64] Implement add/adds/sub/subs/cmp/cmn with negative immediate aliases
This patch teaches the AsmParser to accept add/adds/sub/subs/cmp/cmn
with a negative immediate operand and convert them as shown:

  add  Rd, Rn, -imm -> sub  Rd, Rn, imm
  sub  Rd, Rn, -imm -> add  Rd, Rn, imm
  adds Rd, Rn, -imm -> subs Rd, Rn, imm
  subs Rd, Rn, -imm -> adds Rd, Rn, imm
  cmp  Rn, -imm     -> cmn  Rn, imm
  cmn  Rn, -imm     -> cmp  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 (gas). They are documented in the "ARMv8 Instruction Set
Overview", in the "Arithmetic (immediate)" section. This makes llvm-mc
a programmer-friendly assembler !

This also fixes PR20978: "Assembly handling of adding negative numbers
not as smart as gas".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241166 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 15:05:58 +00:00
..
Analysis Move delinearization from SCEVAddRecExpr to ScalarEvolution 2015-06-29 14:42:48 +00:00
AsmParser Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
Bitcode Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
CodeGen [SDAG] Give InstrEmitter hidden visibility 2015-07-01 14:55:10 +00:00
DebugInfo Don't return error_code from a function that doesn't fail. 2015-06-30 04:08:37 +00:00
ExecutionEngine Use ErrorOr in getRelocationAdress. 2015-06-30 20:32:26 +00:00
Fuzzer [lib/Fuzzer] make assertions more informative and update comments for the user-supplied mutator 2015-05-30 17:33:13 +00:00
IR Fix a fixme and make DICompileUnit a distinct node. Tested via clang. 2015-06-30 18:32:18 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LibDriver Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LTO Teach LTOModule to emit linker flags for dllexported symbols, plus interface cleanup. 2015-06-29 22:04:09 +00:00
MC Fix PR23872: Integrated assembler error message when using .type directive with @ in AArch32 assembly. 2015-07-01 08:58:49 +00:00
Object Return ErrorOr from getSection. 2015-07-01 12:56:27 +00:00
Option [Option] Plug a leak when move-assigning an InputArgList. 2015-06-23 15:28:10 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Support Drop the OS from the WebAssembly target triple for now. 2015-06-30 03:52:25 +00:00
TableGen [TableGen] Restore the use of the TheInit field in Record to cache the Record's DefInit. I broke this when I fixed memory leaks recently. Remove the DenseMap that mapped Record's to DefInit. 2015-06-24 06:19:19 +00:00
Target [AArch64] Implement add/adds/sub/subs/cmp/cmn with negative immediate aliases 2015-07-01 15:05:58 +00:00
Transforms [LoopUnroll] Use undef for phis with no value live 2015-07-01 05:38:07 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00