summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2003-06-05 23:30:27 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2003-06-05 23:30:27 +0000
commitfd394b766a7cecb757771e51f64e06a455ce25e8 (patch)
tree9eda688f4083b3bb2be7748b9574f0310cdd3a6b
parent1cca1c68e134ced13062a4d2e725ed7c91f7946c (diff)
downloadbcm5719-llvm-fd394b766a7cecb757771e51f64e06a455ce25e8.tar.gz
bcm5719-llvm-fd394b766a7cecb757771e51f64e06a455ce25e8.zip
Do not preset the cc register, the instructions actually use it.
llvm-svn: 6637
-rw-r--r--llvm/lib/Target/Sparc/SparcV9.td37
1 files changed, 17 insertions, 20 deletions
diff --git a/llvm/lib/Target/Sparc/SparcV9.td b/llvm/lib/Target/Sparc/SparcV9.td
index 6c3aa567df2..1d9c4b8fe88 100644
--- a/llvm/lib/Target/Sparc/SparcV9.td
+++ b/llvm/lib/Target/Sparc/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
OpenPOWER on IntegriCloud