mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-23 04:16:42 +00:00
The most significant encoding bit of GPR:$src or GPR:$dst was over-specified in
the various MOV (register) instructions (16-bit Thumb), including tBRIND (the indirect branch). Instead of '1', it should be specified as '?', because GPR only specifies the register class, which includes both hi-and-lo registers. llvm-svn: 93759
This commit is contained in:
parent
70af2216fd
commit
a5f79a6b93
@ -208,7 +208,7 @@ let isReturn = 1, isTerminator = 1, isBarrier = 1 in {
|
||||
let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in {
|
||||
def tBRIND : TI<(outs), (ins GPR:$dst), IIC_Br, "mov\tpc, $dst",
|
||||
[(brind GPR:$dst)]>,
|
||||
T1Special<{1,0,1,1}> {
|
||||
T1Special<{1,0,1,?}> {
|
||||
// <Rd> = Inst{7:2-0} = pc
|
||||
let Inst{2-0} = 0b111;
|
||||
}
|
||||
@ -630,13 +630,13 @@ def tMOVSr : T1I<(outs tGPR:$dst), (ins tGPR:$src), IIC_iMOVr,
|
||||
// FIXME: Make these predicable.
|
||||
def tMOVgpr2tgpr : T1I<(outs tGPR:$dst), (ins GPR:$src), IIC_iMOVr,
|
||||
"mov\t$dst, $src", []>,
|
||||
T1Special<{1,0,0,1}>;
|
||||
T1Special<{1,0,0,?}>;
|
||||
def tMOVtgpr2gpr : T1I<(outs GPR:$dst), (ins tGPR:$src), IIC_iMOVr,
|
||||
"mov\t$dst, $src", []>,
|
||||
T1Special<{1,0,1,0}>;
|
||||
T1Special<{1,0,?,0}>;
|
||||
def tMOVgpr2gpr : T1I<(outs GPR:$dst), (ins GPR:$src), IIC_iMOVr,
|
||||
"mov\t$dst, $src", []>,
|
||||
T1Special<{1,0,1,1}>;
|
||||
T1Special<{1,0,?,?}>;
|
||||
} // neverHasSideEffects
|
||||
|
||||
// multiply register
|
||||
@ -771,7 +771,7 @@ let usesCustomInserter = 1 in // Expanded after instruction selection.
|
||||
// 16-bit movcc in IT blocks for Thumb2.
|
||||
def tMOVCCr : T1pIt<(outs GPR:$dst), (ins GPR:$lhs, GPR:$rhs), IIC_iCMOVr,
|
||||
"mov", "\t$dst, $rhs", []>,
|
||||
T1Special<{1,0,1,1}>;
|
||||
T1Special<{1,0,?,?}>;
|
||||
|
||||
def tMOVCCi : T1pIt<(outs GPR:$dst), (ins GPR:$lhs, i32imm:$rhs), IIC_iCMOVi,
|
||||
"mov", "\t$dst, $rhs", []>,
|
||||
|
Loading…
x
Reference in New Issue
Block a user