forked from OSchip/llvm-project
Set Inst{15-12} (Rd/Rt) to 0b1111 (PC) for BR_JTadd, BR_JTr, and BR_JTm to
distinguish between them and the more generic instructions (add, mov, and ldr). llvm-svn: 89108
This commit is contained in:
parent
bc02a10ef3
commit
14b25eb87b
|
@ -759,6 +759,7 @@ let isBranch = 1, isTerminator = 1 in {
|
|||
def BR_JTr : JTI<(outs), (ins GPR:$target, jtblock_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "mov\tpc, $target \n$jt",
|
||||
[(ARMbrjt GPR:$target, tjumptable:$jt, imm:$id)]> {
|
||||
let Inst{15-12} = 0b1111;
|
||||
let Inst{20} = 0; // S Bit
|
||||
let Inst{24-21} = 0b1101;
|
||||
let Inst{27-25} = 0b000;
|
||||
|
@ -768,6 +769,7 @@ let isBranch = 1, isTerminator = 1 in {
|
|||
IIC_Br, "ldr\tpc, $target \n$jt",
|
||||
[(ARMbrjt (i32 (load addrmode2:$target)), tjumptable:$jt,
|
||||
imm:$id)]> {
|
||||
let Inst{15-12} = 0b1111;
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{21} = 0; // W bit
|
||||
let Inst{22} = 0; // B bit
|
||||
|
@ -779,6 +781,7 @@ let isBranch = 1, isTerminator = 1 in {
|
|||
IIC_Br, "add\tpc, $target, $idx \n$jt",
|
||||
[(ARMbrjt (add GPR:$target, GPR:$idx), tjumptable:$jt,
|
||||
imm:$id)]> {
|
||||
let Inst{15-12} = 0b1111;
|
||||
let Inst{20} = 0; // S bit
|
||||
let Inst{24-21} = 0b0100;
|
||||
let Inst{27-25} = 0b000;
|
||||
|
|
Loading…
Reference in New Issue