From 1e48478557587d3931d5e8277fe79719d78ab245 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 4 Dec 2005 18:42:54 +0000 Subject: [PATCH] Define BR in the .td file now that Evan made tblgen smarter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24589 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrFormats.td | 3 ++- lib/Target/PowerPC/PPCInstrInfo.td | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index ef3cf1a7ab6..4d69c7700ba 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -31,8 +31,9 @@ class I opcode, dag OL, string asmstr, InstrItinClass itin> // 1.7.1 I-Form class IForm opcode, bit aa, bit lk, dag OL, string asmstr, - InstrItinClass itin> + InstrItinClass itin, list pattern> : I { + let Pattern = pattern; bits<24> LI; let Inst{6-29} = LI; diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index 38f4ba830ef..48ac98176b4 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -128,7 +128,7 @@ def u16imm : Operand { def s16immX4 : Operand { // Multiply imm by 4 before printing. let PrintMethod = "printS16X4ImmOperand"; } -def target : Operand { +def target : Operand { let PrintMethod = "printBranchOperand"; } def calltarget : Operand { @@ -194,7 +194,9 @@ let isBranch = 1, isTerminator = 1 in { def COND_BRANCH : Pseudo<(ops CRRC:$crS, u16imm:$opc, target:$true, target:$false), "; COND_BRANCH", []>; - def B : IForm<18, 0, 0, (ops target:$func), "b $func", BrB>; + def B : IForm<18, 0, 0, (ops target:$dst), + "b $dst", BrB, + [(br bb:$dst)]>; // FIXME: 4*CR# needs to be added to the BI field! // This will only work for CR0 as it stands now @@ -223,8 +225,10 @@ let isCall = 1, LR,CTR, CR0,CR1,CR5,CR6,CR7] in { // Convenient aliases for call instructions - def BL : IForm<18, 0, 1, (ops calltarget:$func, variable_ops), "bl $func", BrB>; - def BLA : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), "bla $func", BrB>; + def BL : IForm<18, 0, 1, (ops calltarget:$func, variable_ops), + "bl $func", BrB, []>; + def BLA : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), + "bla $func", BrB, []>; def BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB>; } -- 2.34.1