aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-12-03 02:02:58 +0000
committerBill Wendling <isanbard@gmail.com>2010-12-03 02:02:58 +0000
commit278b6e81c85a2c003282024656c11dab19900c4f (patch)
treeae31453c754ce1af201018f2b9ab768c977e63f2
parent534a5e43051cc02c3139c03633189d916029096a (diff)
downloadexternal_llvm-278b6e81c85a2c003282024656c11dab19900c4f.zip
external_llvm-278b6e81c85a2c003282024656c11dab19900c4f.tar.gz
external_llvm-278b6e81c85a2c003282024656c11dab19900c4f.tar.bz2
Don't overwrite the opcode passed into the T1Special pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120782 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMInstrThumb.td9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td
index 102a69b..f46335d 100644
--- a/lib/Target/ARM/ARMInstrThumb.td
+++ b/lib/Target/ARM/ARMInstrThumb.td
@@ -1010,8 +1010,8 @@ def tMOVr : T1I<(outs tGPR:$Rd), (ins tGPR:$Rm), IIC_iMOVr,
// A8.6.97
bits<4> Rd;
bits<4> Rm;
- let Inst{7} = Rd{3};
- let Inst{6-3} = Rm;
+ // Bits {7-6} are encoded by the T1Special value.
+ let Inst{5-3} = Rm{2-0};
let Inst{2-0} = Rd{2-0};
}
let Defs = [CPSR] in
@@ -1032,7 +1032,7 @@ def tMOVgpr2tgpr : T1I<(outs tGPR:$Rd), (ins GPR:$Rm), IIC_iMOVr,
// A8.6.97
bits<4> Rd;
bits<4> Rm;
- let Inst{7} = Rd{3};
+ // Bit {7} is encoded by the T1Special value.
let Inst{6-3} = Rm;
let Inst{2-0} = Rd{2-0};
}
@@ -1042,8 +1042,9 @@ def tMOVtgpr2gpr : T1I<(outs GPR:$Rd), (ins tGPR:$Rm), IIC_iMOVr,
// A8.6.97
bits<4> Rd;
bits<4> Rm;
+ // Bit {6} is encoded by the T1Special value.
let Inst{7} = Rd{3};
- let Inst{6-3} = Rm;
+ let Inst{5-3} = Rm{2-0};
let Inst{2-0} = Rd{2-0};
}
def tMOVgpr2gpr : T1I<(outs GPR:$Rd), (ins GPR:$Rm), IIC_iMOVr,