diff options
-rw-r--r-- | lib/Target/PowerPC/PPCInstrFormats.td | 22 | ||||
-rw-r--r-- | 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 a52bda249a..dfbbbe49e7 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -66,28 +66,20 @@ class IForm<bits<6> opcode, bit aa, bit lk, dag OL, string asmstr> } // 1.7.2 B-Form -class BForm<bits<6> opcode, bit aa, bit lk, dag OL, string asmstr> - : I<opcode, OL, asmstr> { - bits<5> BO; - bits<3> CRNum; - bits<2> BICode; +class BForm<bits<6> opcode, bit aa, bit lk, bits<5> bo, bits<2> bicode, dag OL, + string asmstr> + : I<opcode, OL, asmstr> { + 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<bits<6> opcode, bit aa, bit lk, bits<5> bo, bits<2> bicode, - dag OL, string asmstr> - : BForm<opcode, aa, lk, OL, asmstr> { - let BO = bo; - let BICode = bicode; -} - // 1.7.4 D-Form class DForm_base<bits<6> opcode, dag OL, string asmstr> : I<opcode, OL, asmstr>{ bits<5> A; diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index cfcc2fcac7..fc4566836d 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, |