From d4ad1d10bc496d1dc1e47d2a80a6e09f4547bc4f Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Thu, 5 Jun 2003 23:30:27 +0000 Subject: [PATCH] Do not preset the cc register, the instructions actually use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6637 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/SparcV9/SparcV9.td | 37 ++++++++++++++++------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/lib/Target/SparcV9/SparcV9.td b/lib/Target/SparcV9/SparcV9.td index 6c3aa567df2..1d9c4b8fe88 100644 --- a/lib/Target/SparcV9/SparcV9.td +++ b/lib/Target/SparcV9/SparcV9.td @@ -77,27 +77,24 @@ set isDeprecated = 1 in { } #endif -// These instructions are hacked to really represent A.5 instructions, -// but with cc hardcoded to be %fcc0. Hence, they behave like FBPfcc instrs. +// We now make these same opcodes represent the FBPfcc instructions set op2 = 0b101 in { - set cc = 0b00 in { - def FBA : F2_3<0b1000, "fba">; // Branch always - def FBN : F2_3<0b0000, "fbn">; // Branch never - def FBU : F2_3<0b0111, "fbu">; // Branch on unordered - def FBG : F2_3<0b0110, "fbg">; // Branch > - def FBUG : F2_3<0b0101, "fbug">; // Branch on unordered or > - def FBL : F2_3<0b0100, "fbl">; // Branch < - def FBUL : F2_3<0b0011, "fbul">; // Branch on unordered or < - def FBLG : F2_3<0b0010, "fblg">; // Branch < or > - def FBNE : F2_3<0b0001, "fbne">; // Branch != - def FBE : F2_3<0b1001, "fbe">; // Branch == - def FBUE : F2_3<0b1010, "fbue">; // Branch on unordered or == - def FBGE : F2_3<0b1011, "fbge">; // Branch > or == - def FBUGE : F2_3<0b1100, "fbuge">; // Branch unord or > or == - def FBLE : F2_3<0b1101, "fble">; // Branch < or == - def FBULE : F2_3<0b1110, "fbule">; // Branch unord or < or == - def FBO : F2_3<0b1111, "fbo">; // Branch on ordered - } + def FBA : F2_3<0b1000, "fba">; // Branch always + def FBN : F2_3<0b0000, "fbn">; // Branch never + def FBU : F2_3<0b0111, "fbu">; // Branch on unordered + def FBG : F2_3<0b0110, "fbg">; // Branch > + def FBUG : F2_3<0b0101, "fbug">; // Branch on unordered or > + def FBL : F2_3<0b0100, "fbl">; // Branch < + def FBUL : F2_3<0b0011, "fbul">; // Branch on unordered or < + def FBLG : F2_3<0b0010, "fblg">; // Branch < or > + def FBNE : F2_3<0b0001, "fbne">; // Branch != + def FBE : F2_3<0b1001, "fbe">; // Branch == + def FBUE : F2_3<0b1010, "fbue">; // Branch on unordered or == + def FBGE : F2_3<0b1011, "fbge">; // Branch > or == + def FBUGE : F2_3<0b1100, "fbuge">; // Branch unord or > or == + def FBLE : F2_3<0b1101, "fble">; // Branch < or == + def FBULE : F2_3<0b1110, "fbule">; // Branch unord or < or == + def FBO : F2_3<0b1111, "fbo">; // Branch on ordered } // Section A.5: Branch on FP condition codes with prediction - p143