summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-07-09 20:43:34 +0000
committerChad Rosier <mcrosier@apple.com>2012-07-09 20:43:34 +0000
commitaeed158f75f8ea9e812e49e6c19083c3d409ea03 (patch)
treef579af4ddde421f9ae18856331dc62f2a8bae965
parentfb982ddeda7f796de23a39632f535f66a16af537 (diff)
downloadbcm5719-llvm-aeed158f75f8ea9e812e49e6c19083c3d409ea03.tar.gz
bcm5719-llvm-aeed158f75f8ea9e812e49e6c19083c3d409ea03.zip
Revert r159938 (and r159945) to appease the buildbots.
llvm-svn: 159960
-rw-r--r--llvm/lib/Target/ARM/ARMInstrVFP.td8
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp8
-rw-r--r--llvm/test/MC/ARM/simple-fp-encoding.s21
3 files changed, 8 insertions, 29 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrVFP.td b/llvm/lib/Target/ARM/ARMInstrVFP.td
index 23c132e4f6a..4e2cda433ba 100644
--- a/llvm/lib/Target/ARM/ARMInstrVFP.td
+++ b/llvm/lib/Target/ARM/ARMInstrVFP.td
@@ -567,8 +567,8 @@ def VMOVRRS : AVConv3I<0b11000101, 0b1010,
bits<4> Rt2;
// Encode instruction operands.
- let Inst{3-0} = src1{4-1};
- let Inst{5} = src1{0};
+ let Inst{3-0} = src1{3-0};
+ let Inst{5} = src1{4};
let Inst{15-12} = Rt;
let Inst{19-16} = Rt2;
@@ -617,8 +617,8 @@ def VMOVSRR : AVConv5I<0b11000100, 0b1010,
bits<4> src2;
// Encode instruction operands.
- let Inst{3-0} = dst1{4-1};
- let Inst{5} = dst1{0};
+ let Inst{3-0} = dst1{3-0};
+ let Inst{5} = dst1{4};
let Inst{15-12} = src1;
let Inst{19-16} = src2;
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index c42edd53952..66ea1171ff9 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -4198,9 +4198,9 @@ static DecodeStatus DecodeVMOVSRR(MCInst &Inst, unsigned Insn,
DecodeStatus S = MCDisassembler::Success;
unsigned Rt = fieldFromInstruction32(Insn, 12, 4);
unsigned Rt2 = fieldFromInstruction32(Insn, 16, 4);
- unsigned Rm = fieldFromInstruction32(Insn, 5, 1);
+ unsigned Rm = fieldFromInstruction32(Insn, 0, 4);
unsigned pred = fieldFromInstruction32(Insn, 28, 4);
- Rm |= fieldFromInstruction32(Insn, 0, 4) << 4;
+ Rm |= fieldFromInstruction32(Insn, 5, 1) << 4;
if (Rt == 0xF || Rt2 == 0xF || Rm == 0x1F)
S = MCDisassembler::SoftFail;
@@ -4224,9 +4224,9 @@ static DecodeStatus DecodeVMOVRRS(MCInst &Inst, unsigned Insn,
DecodeStatus S = MCDisassembler::Success;
unsigned Rt = fieldFromInstruction32(Insn, 12, 4);
unsigned Rt2 = fieldFromInstruction32(Insn, 16, 4);
- unsigned Rm = fieldFromInstruction32(Insn, 5, 1);
+ unsigned Rm = fieldFromInstruction32(Insn, 0, 4);
unsigned pred = fieldFromInstruction32(Insn, 28, 4);
- Rm |= fieldFromInstruction32(Insn, 0, 4) << 1;
+ Rm |= fieldFromInstruction32(Insn, 5, 1) << 4;
if (Rt == 0xF || Rt2 == 0xF || Rm == 0x1F)
S = MCDisassembler::SoftFail;
diff --git a/llvm/test/MC/ARM/simple-fp-encoding.s b/llvm/test/MC/ARM/simple-fp-encoding.s
index 2a226205a08..a766b9539a7 100644
--- a/llvm/test/MC/ARM/simple-fp-encoding.s
+++ b/llvm/test/MC/ARM/simple-fp-encoding.s
@@ -196,27 +196,6 @@
@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
vmov r0, r1, d16
-@ Between two single precision registers and two core registers
- vmov s3, s4, r1, r2
- vmov s2, s3, r1, r2
- vmov r1, r2, s3, s4
- vmov r1, r2, s2, s3
-@ CHECK: vmov s3, s4, r1, r2 @ encoding: [0x31,0x1a,0x42,0xec]
-@ CHECK: vmov s2, s3, r1, r2 @ encoding: [0x11,0x1a,0x42,0xec]
-@ CHECK: vmov r1, r2, s3, s4 @ encoding: [0x31,0x1a,0x52,0xec]
-@ CHECK: vmov r1, r2, s2, s3 @ encoding: [0x11,0x1a,0x52,0xec]
-
-@ Between one double precision register and two core registers
- vmov d15, r1, r2
- vmov d16, r1, r2
- vmov r1, r2, d15
- vmov r1, r2, d16
-@ CHECK: vmov d15, r1, r2 @ encoding: [0x1f,0x1b,0x42,0xec]
-@ CHECK: vmov d16, r1, r2 @ encoding: [0x30,0x1b,0x42,0xec]
-@ CHECK: vmov r1, r2, d15 @ encoding: [0x1f,0x1b,0x52,0xec]
-@ CHECK: vmov r1, r2, d16 @ encoding: [0x30,0x1b,0x52,0xec]
-
-
@ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
@ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed]
@ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed]
OpenPOWER on IntegriCloud