From 6718f11febbc4ded0a8f3964306442ad44c0fb98 Mon Sep 17 00:00:00 2001 From: Nate Begeman Date: Fri, 26 Aug 2005 04:11:42 +0000 Subject: [PATCH] Fix JIT encoding of conditional branches git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23076 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrFormats.td | 22 +++++++--------------- lib/Target/PowerPC/PPCInstrInfo.td | 24 ++++++++++++------------ 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index a52bda249ad..dfbbbe49e77 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -66,28 +66,20 @@ class IForm opcode, bit aa, bit lk, dag OL, string asmstr> } // 1.7.2 B-Form -class BForm opcode, bit aa, bit lk, dag OL, string asmstr> - : I { - bits<5> BO; - bits<3> CRNum; - bits<2> BICode; +class BForm opcode, bit aa, bit lk, bits<5> bo, bits<2> bicode, dag OL, + string asmstr> + : I { + bits<3> CR; bits<14> BD; - let Inst{6-10} = BO; - let Inst{11-13} = CRNum; - let Inst{14-15} = BICode; + let Inst{6-10} = bo; + let Inst{11-13} = CR; + let Inst{14-15} = bicode; let Inst{16-29} = BD; let Inst{30} = aa; let Inst{31} = lk; } -class BForm_ext opcode, bit aa, bit lk, bits<5> bo, bits<2> bicode, - dag OL, string asmstr> - : BForm { - let BO = bo; - let BICode = bicode; -} - // 1.7.4 D-Form class DForm_base opcode, dag OL, string asmstr> : I{ bits<5> A; diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index cfcc2fcac71..fc4566836dd 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -80,18 +80,18 @@ let isBranch = 1, isTerminator = 1 in { // FIXME: 4*CR# needs to be added to the BI field! // This will only work for CR0 as it stands now - def BLT : BForm_ext<16, 0, 0, 12, 0, (ops CRRC:$crS, target:$block), - "blt $block">; - def BLE : BForm_ext<16, 0, 0, 4, 1, (ops CRRC:$crS, target:$block), - "ble $block">; - def BEQ : BForm_ext<16, 0, 0, 12, 2, (ops CRRC:$crS, target:$block), - "beq $block">; - def BGE : BForm_ext<16, 0, 0, 4, 0, (ops CRRC:$crS, target:$block), - "bge $block">; - def BGT : BForm_ext<16, 0, 0, 12, 1, (ops CRRC:$crS, target:$block), - "bgt $block">; - def BNE : BForm_ext<16, 0, 0, 4, 2, (ops CRRC:$crS, target:$block), - "bne $block">; + def BLT : BForm<16, 0, 0, 12, 0, (ops CRRC:$crS, target:$block), + "blt $block">; + def BLE : BForm<16, 0, 0, 4, 1, (ops CRRC:$crS, target:$block), + "ble $block">; + def BEQ : BForm<16, 0, 0, 12, 2, (ops CRRC:$crS, target:$block), + "beq $block">; + def BGE : BForm<16, 0, 0, 4, 0, (ops CRRC:$crS, target:$block), + "bge $block">; + def BGT : BForm<16, 0, 0, 12, 1, (ops CRRC:$crS, target:$block), + "bgt $block">; + def BNE : BForm<16, 0, 0, 4, 2, (ops CRRC:$crS, target:$block), + "bne $block">; } let isCall = 1,