mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-13 23:26:25 +00:00
Conditional branch is not a barrier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37103 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -590,14 +590,12 @@ let isCall = 1, noResults = 1,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let isBranch = 1, isTerminator = 1, noResults = 1, isBarrier = 1 in {
|
let isBranch = 1, isTerminator = 1, noResults = 1 in {
|
||||||
// B can changed into a Bcc, but it is not "predicated".
|
// B can changed into a Bcc, but it is not "predicated".
|
||||||
|
let isBarrier = 1 in {
|
||||||
def B : AXI<(ops brtarget:$dst), "b $dst",
|
def B : AXI<(ops brtarget:$dst), "b $dst",
|
||||||
[(br bb:$dst)]>;
|
[(br bb:$dst)]>;
|
||||||
|
|
||||||
def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst",
|
|
||||||
[(ARMbrcond bb:$dst, imm:$cc)]>;
|
|
||||||
|
|
||||||
def BR_JTr : JTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id),
|
def BR_JTr : JTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id),
|
||||||
"mov", " pc, $dst \n$jt",
|
"mov", " pc, $dst \n$jt",
|
||||||
[(ARMbrjt GPR:$dst, tjumptable:$jt, imm:$id)]>;
|
[(ARMbrjt GPR:$dst, tjumptable:$jt, imm:$id)]>;
|
||||||
@@ -609,6 +607,10 @@ let isBranch = 1, isTerminator = 1, noResults = 1, isBarrier = 1 in {
|
|||||||
"add", " pc, $dst, $idx \n$jt",
|
"add", " pc, $dst, $idx \n$jt",
|
||||||
[(ARMbrjt (add GPR:$dst, GPR:$idx), tjumptable:$jt,
|
[(ARMbrjt (add GPR:$dst, GPR:$idx), tjumptable:$jt,
|
||||||
imm:$id)]>;
|
imm:$id)]>;
|
||||||
|
}
|
||||||
|
|
||||||
|
def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst",
|
||||||
|
[(ARMbrcond bb:$dst, imm:$cc)]>;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
Reference in New Issue
Block a user