Reapply r113875 with additional cleanups.
authorJim Grosbach <grosbach@apple.com>
Tue, 14 Sep 2010 23:54:06 +0000 (23:54 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 14 Sep 2010 23:54:06 +0000 (23:54 +0000)
commit05ae0c6026c15cc934ef2117a7a75ae57c55067d
tree11316a778d297f2a31eff479eed921642b82e5d6
parentef63c9a9b6f79fef91dc144db9d5f217d2b83a95
Reapply r113875 with additional cleanups.

"The register specified for a dregpair is the corresponding Q register, so to
get the pair, we need to look up the sub-regs based on the qreg. Create a
lookup function since we don't have access to TargetRegisterInfo here to
be able to use getSubReg(ARM::dsub_[01])."

Additionaly, fix the NEON VLD1* and VST1* instruction patterns not to use
the dregpair modifier for the 2xdreg versions. Explicitly specifying the two
registers as operands is more correct and more consistent with the other
instruction patterns. This enables further cleanup of special case code in the
disassembler as a nice side-effect.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113903 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrNEON.td
lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
test/MC/Disassembler/neon-tests.txt