llvm/lib/Target/AArch64
Tim Northover 630c5e06d6 AArch64: use RegisterOperand for NEON registers.
Previously we modelled VPR128 and VPR64 as essentially identical
register-classes containing V0-V31 (which had Q0-Q31 as "sub_alias"
sub-registers). This model is starting to cause significant problems
for code generation, particularly writing EXTRACT/INSERT_SUBREG
patterns for converting between the two.

The change here switches to classifying VPR64 & VPR128 as
RegisterOperands, which are essentially aliases for RegisterClasses
with different parsing and printing behaviour. This fits almost
exactly with their real status (VPR128 == FPR128 printed strangely,
VPR64 == FPR64 printed strangely).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190665 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-13 07:26:52 +00:00
..
AsmParser AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
Disassembler AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
InstPrinter AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
MCTargetDesc Generate compact unwind encoding from CFI directives. 2013-09-09 02:37:14 +00:00
TargetInfo AArch64: clarify -help message 2013-05-28 21:09:39 +00:00
Utils AArch64: add initial NEON support 2013-08-01 09:20:35 +00:00
AArch64.h AArch64: add branch fixup pass. 2013-02-15 14:32:20 +00:00
AArch64.td AArch64: add block comments where missing 2013-02-14 16:17:01 +00:00
AArch64AsmPrinter.cpp AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
AArch64AsmPrinter.h DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs 2013-06-16 20:34:27 +00:00
AArch64BranchFixupPass.cpp Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros. 2013-05-24 22:23:49 +00:00
AArch64CallingConv.td AArch64: add initial NEON support 2013-08-01 09:20:35 +00:00
AArch64FrameLowering.cpp Add const qualifier to some static arrays. 2013-07-15 07:02:45 +00:00
AArch64FrameLowering.h Add const qualifier to some static arrays. 2013-07-15 07:02:45 +00:00
AArch64InstrFormats.td Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions, 2013-09-09 02:20:27 +00:00
AArch64InstrInfo.cpp DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs 2013-06-16 20:34:27 +00:00
AArch64InstrInfo.h DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs 2013-06-16 20:34:27 +00:00
AArch64InstrInfo.td AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
AArch64InstrNEON.td AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
AArch64ISelDAGToDAG.cpp AArch64: fix even more JIT failures 2013-07-25 16:03:54 +00:00
AArch64ISelLowering.cpp AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
AArch64ISelLowering.h Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions: 2013-09-04 09:28:24 +00:00
AArch64MachineFunctionInfo.cpp AArch64: add block comments where missing 2013-02-14 16:17:01 +00:00
AArch64MachineFunctionInfo.h AArch64: remove ConstantIsland pass & put literals in separate section. 2013-02-15 09:33:43 +00:00
AArch64MCInstLower.cpp AArch64: add initial NEON support 2013-08-01 09:20:35 +00:00
AArch64RegisterInfo.cpp Don't cache the instruction info and register info objects. 2013-06-07 05:00:11 +00:00
AArch64RegisterInfo.h Don't cache the instruction info and register info objects. 2013-06-07 05:00:11 +00:00
AArch64RegisterInfo.td AArch64: use RegisterOperand for NEON registers. 2013-09-13 07:26:52 +00:00
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp
AArch64SelectionDAGInfo.h Fix formatting in AArch64 backend. 2013-02-05 13:24:56 +00:00
AArch64Subtarget.cpp AArch64: add initial NEON support 2013-08-01 09:20:35 +00:00
AArch64Subtarget.h Clean up some usage of Triple. The base class has methods for determining if the target is iOS and Linux. 2013-08-29 20:23:14 +00:00
AArch64TargetMachine.cpp Remove the MachineMove class. 2013-05-13 01:16:13 +00:00
AArch64TargetMachine.h
AArch64TargetObjectFile.cpp AArch64: add block comments where missing 2013-02-14 16:17:01 +00:00
AArch64TargetObjectFile.h AArch64: add block comments where missing 2013-02-14 16:17:01 +00:00
CMakeLists.txt Target/*/CMakeLists.txt: Add the dependency to CommonTableGen explicitly for each corresponding CodeGen. 2013-08-06 06:38:37 +00:00
LLVMBuild.txt Build system changes to enable MCJIT on AArch64 2013-05-04 20:13:52 +00:00
Makefile Remove cyclic dependency in AArch64 libraries 2013-02-05 13:24:47 +00:00
README.txt

This file will contain changes that need to be made before AArch64 can become an
officially supported target. Currently a placeholder.