diff options
author | Bob Wilson <bob.wilson@apple.com> | 2010-11-30 00:00:42 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2010-11-30 00:00:42 +0000 |
commit | 8e0c7b52877983b4838e54e233449912fc1a2325 (patch) | |
tree | a39a12a928b16552ab71ce2980e01b8ed7fbd1e8 /lib/Target/ARM/ARMInstrInfo.td | |
parent | 173fb1421ac03999561e365d8413e8983189dab3 (diff) | |
download | external_llvm-8e0c7b52877983b4838e54e233449912fc1a2325.zip external_llvm-8e0c7b52877983b4838e54e233449912fc1a2325.tar.gz external_llvm-8e0c7b52877983b4838e54e233449912fc1a2325.tar.bz2 |
Fix the encoding of VLD4-dup alignment.
The only reasonable way I could find to do this is to provide an alternate
version of the addrmode6 operand with a different encoding function. Use it
for all the VLD-dup instructions for the sake of consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120358 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrInfo.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index b9b1b7e..d2407c6 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -540,6 +540,15 @@ def am6offset : Operand<i32> { let EncoderMethod = "getAddrMode6OffsetOpValue"; } +// Special version of addrmode6 to handle alignment encoding for VLD-dup +// instructions, specifically VLD4-dup. +def addrmode6dup : Operand<i32>, + ComplexPattern<i32, 2, "SelectAddrMode6", [], [SDNPWantParent]>{ + let PrintMethod = "printAddrMode6Operand"; + let MIOperandInfo = (ops GPR:$addr, i32imm); + let EncoderMethod = "getAddrMode6DupAddressOpValue"; +} + // addrmodepc := pc + reg // def addrmodepc : Operand<i32>, |