diff options
| author | Kalle Raiskila <kalle.raiskila@nokia.com> | 2011-10-13 11:40:03 +0000 |
|---|---|---|
| committer | Kalle Raiskila <kalle.raiskila@nokia.com> | 2011-10-13 11:40:03 +0000 |
| commit | 3815de8d5016746f1d712eb66ea745d4cedc244d (patch) | |
| tree | 222fdda3f89071d4fd0cc3e260d994655ef9cfe3 | |
| parent | ca98f2a63f94d83860b264c365cf5c5d3f64678b (diff) | |
| download | bcm5719-llvm-3815de8d5016746f1d712eb66ea745d4cedc244d.tar.gz bcm5719-llvm-3815de8d5016746f1d712eb66ea745d4cedc244d.zip | |
Mark 'branch indirect' instruction as an indirect branch.
Not having it confused assembly printing of jumptables.
llvm-svn: 141862
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUInstrInfo.td | 6 | ||||
| -rw-r--r-- | llvm/test/CodeGen/CellSPU/jumptable.ll | 12 |
2 files changed, 10 insertions, 8 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUInstrInfo.td b/llvm/lib/Target/CellSPU/SPUInstrInfo.td index aa6d02ce3ce..f76ebd75bfe 100644 --- a/llvm/lib/Target/CellSPU/SPUInstrInfo.td +++ b/llvm/lib/Target/CellSPU/SPUInstrInfo.td @@ -3467,8 +3467,10 @@ let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in { [/* no pattern */]>; // Indirect branch - def BI: - BIForm<0b00010101100, "bi\t$func", [(brind R32C:$func)]>; + let isIndirectBranch = 1 in { + def BI: + BIForm<0b00010101100, "bi\t$func", [(brind R32C:$func)]>; + } } // Conditional branches: diff --git a/llvm/test/CodeGen/CellSPU/jumptable.ll b/llvm/test/CodeGen/CellSPU/jumptable.ll index 87376ef6ed5..66c2fdeb51f 100644 --- a/llvm/test/CodeGen/CellSPU/jumptable.ll +++ b/llvm/test/CodeGen/CellSPU/jumptable.ll @@ -4,18 +4,18 @@ define i32 @test(i32 %param) { entry: ;CHECK: ai {{\$.}}, $3, -1 ;CHECK: clgti {{\$., \$.}}, 3 -;CHECK: brnz {{\$.}},.LBB0_2 - switch i32 %param, label %bb1 [ - i32 1, label %bb3 +;CHECK: brnz {{\$.}},.LBB0_ + switch i32 %param, label %bb2 [ + i32 1, label %bb1 i32 2, label %bb2 i32 3, label %bb3 - i32 4, label %bb1 + i32 4, label %bb2 ] - +;CHECK-NOT: # BB#2 bb1: ret i32 1 bb2: ret i32 2 bb3: - ret i32 3 + ret i32 %param } |

