Skip to content

Commit 2bf6141

Browse files
committed
Merge 81310 from mainline.
Fix arm jit encoding bug introduced by 75048. Some instructions', e.g. MOVi, bit 25 should be set. llvm-svn: 81639
1 parent df08efc commit 2bf6141

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

llvm/lib/Target/ARM/ARMInstrInfo.td

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,9 @@ def MOVs : AsI1<0b1101, (outs GPR:$dst), (ins so_reg:$src),
904904

905905
let isReMaterializable = 1, isAsCheapAsAMove = 1 in
906906
def MOVi : AsI1<0b1101, (outs GPR:$dst), (ins so_imm:$src), DPFrm, IIC_iMOVi,
907-
"mov", " $dst, $src", [(set GPR:$dst, so_imm:$src)]>, UnaryDP;
907+
"mov", " $dst, $src", [(set GPR:$dst, so_imm:$src)]>, UnaryDP {
908+
let Inst{25} = 1;
909+
}
908910

909911
def MOVrx : AsI1<0b1101, (outs GPR:$dst), (ins GPR:$src), Pseudo, IIC_iMOVsi,
910912
"mov", " $dst, $src, rrx",
@@ -989,7 +991,9 @@ defm SBC : AI1_adde_sube_irs<0b0110, "sbc",
989991
// These don't define reg/reg forms, because they are handled above.
990992
def RSBri : AsI1<0b0011, (outs GPR:$dst), (ins GPR:$a, so_imm:$b), DPFrm,
991993
IIC_iALUi, "rsb", " $dst, $a, $b",
992-
[(set GPR:$dst, (sub so_imm:$b, GPR:$a))]>;
994+
[(set GPR:$dst, (sub so_imm:$b, GPR:$a))]> {
995+
let Inst{25} = 1;
996+
}
993997

994998
def RSBrs : AsI1<0b0011, (outs GPR:$dst), (ins GPR:$a, so_reg:$b), DPSoRegFrm,
995999
IIC_iALUsr, "rsb", " $dst, $a, $b",
@@ -999,7 +1003,9 @@ def RSBrs : AsI1<0b0011, (outs GPR:$dst), (ins GPR:$a, so_reg:$b), DPSoRegFrm,
9991003
let Defs = [CPSR] in {
10001004
def RSBSri : AI1<0b0011, (outs GPR:$dst), (ins GPR:$a, so_imm:$b), DPFrm,
10011005
IIC_iALUi, "rsb", "s $dst, $a, $b",
1002-
[(set GPR:$dst, (subc so_imm:$b, GPR:$a))]>;
1006+
[(set GPR:$dst, (subc so_imm:$b, GPR:$a))]> {
1007+
let Inst{25} = 1;
1008+
}
10031009
def RSBSrs : AI1<0b0011, (outs GPR:$dst), (ins GPR:$a, so_reg:$b), DPSoRegFrm,
10041010
IIC_iALUsr, "rsb", "s $dst, $a, $b",
10051011
[(set GPR:$dst, (subc so_reg:$b, GPR:$a))]>;
@@ -1009,7 +1015,9 @@ let Uses = [CPSR] in {
10091015
def RSCri : AsI1<0b0111, (outs GPR:$dst), (ins GPR:$a, so_imm:$b),
10101016
DPFrm, IIC_iALUi, "rsc", " $dst, $a, $b",
10111017
[(set GPR:$dst, (sube so_imm:$b, GPR:$a))]>,
1012-
Requires<[IsARM, CarryDefIsUnused]>;
1018+
Requires<[IsARM, CarryDefIsUnused]> {
1019+
let Inst{25} = 1;
1020+
}
10131021
def RSCrs : AsI1<0b0111, (outs GPR:$dst), (ins GPR:$a, so_reg:$b),
10141022
DPSoRegFrm, IIC_iALUsr, "rsc", " $dst, $a, $b",
10151023
[(set GPR:$dst, (sube so_reg:$b, GPR:$a))]>,
@@ -1021,7 +1029,9 @@ let Defs = [CPSR], Uses = [CPSR] in {
10211029
def RSCSri : AXI1<0b0111, (outs GPR:$dst), (ins GPR:$a, so_imm:$b),
10221030
DPFrm, IIC_iALUi, "rscs $dst, $a, $b",
10231031
[(set GPR:$dst, (sube so_imm:$b, GPR:$a))]>,
1024-
Requires<[IsARM, CarryDefIsUnused]>;
1032+
Requires<[IsARM, CarryDefIsUnused]> {
1033+
let Inst{25} = 1;
1034+
}
10251035
def RSCSrs : AXI1<0b0111, (outs GPR:$dst), (ins GPR:$a, so_reg:$b),
10261036
DPSoRegFrm, IIC_iALUsr, "rscs $dst, $a, $b",
10271037
[(set GPR:$dst, (sube so_reg:$b, GPR:$a))]>,
@@ -1075,7 +1085,9 @@ def MVNs : AsI1<0b1111, (outs GPR:$dst), (ins so_reg:$src), DPSoRegFrm,
10751085
let isReMaterializable = 1, isAsCheapAsAMove = 1 in
10761086
def MVNi : AsI1<0b1111, (outs GPR:$dst), (ins so_imm:$imm), DPFrm,
10771087
IIC_iMOVi, "mvn", " $dst, $imm",
1078-
[(set GPR:$dst, so_imm_not:$imm)]>,UnaryDP;
1088+
[(set GPR:$dst, so_imm_not:$imm)]>,UnaryDP {
1089+
let Inst{25} = 1;
1090+
}
10791091

10801092
def : ARMPat<(and GPR:$src, so_imm_not:$imm),
10811093
(BICri GPR:$src, so_imm_not:$imm)>;
@@ -1393,7 +1405,9 @@ def MOVCCi : AI1<0b1101, (outs GPR:$dst),
13931405
(ins GPR:$false, so_imm:$true), DPFrm, IIC_iCMOVi,
13941406
"mov", " $dst, $true",
13951407
[/*(set GPR:$dst, (ARMcmov GPR:$false, so_imm:$true, imm:$cc, CCR:$ccr))*/]>,
1396-
RegConstraint<"$false = $dst">, UnaryDP;
1408+
RegConstraint<"$false = $dst">, UnaryDP {
1409+
let Inst{25} = 1;
1410+
}
13971411

13981412

13991413
//===----------------------------------------------------------------------===//

0 commit comments

Comments
 (0)