1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

Conditional branch is not a barrier.

llvm-svn: 37103
This commit is contained in:
Evan Cheng 2007-05-16 07:45:54 +00:00
parent a18b36cf45
commit 6943cefdcd

View File

@ -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".
let isBarrier = 1 in {
def B : AXI<(ops brtarget:$dst), "b $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),
"mov", " pc, $dst \n$jt",
[(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",
[(ARMbrjt (add GPR:$dst, GPR:$idx), tjumptable:$jt,
imm:$id)]>;
}
def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst",
[(ARMbrcond bb:$dst, imm:$cc)]>;
}
//===----------------------------------------------------------------------===//