projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
724c086
)
SPARC NCG: Add jumps to end of blocks when working out condition codes
author
Ben.Lippmeier@anu.edu.au
<unknown>
Mon, 23 Feb 2009 06:21:35 +0000
(06:21 +0000)
committer
Ben.Lippmeier@anu.edu.au
<unknown>
Mon, 23 Feb 2009 06:21:35 +0000
(06:21 +0000)
compiler/nativeGen/SPARC/CodeGen/Gen32.hs
patch
|
blob
|
history
diff --git
a/compiler/nativeGen/SPARC/CodeGen/Gen32.hs
b/compiler/nativeGen/SPARC/CodeGen/Gen32.hs
index
eb302a7
..
4ae87df
100644
(file)
--- a/
compiler/nativeGen/SPARC/CodeGen/Gen32.hs
+++ b/
compiler/nativeGen/SPARC/CodeGen/Gen32.hs
@@
-642,13
+642,23
@@
condIntReg cond x y = do
bid2@(BlockId _) <- getBlockIdNat
CondCode _ cond cond_code <- condIntCode cond x y
let
bid2@(BlockId _) <- getBlockIdNat
CondCode _ cond cond_code <- condIntCode cond x y
let
- code__2 dst = cond_code `appOL` toOL [
- BI cond False bid1, NOP,
- OR False g0 (RIImm (ImmInt 0)) dst,
- BI ALWAYS False bid2, NOP,
- NEWBLOCK bid1,
- OR False g0 (RIImm (ImmInt 1)) dst,
- NEWBLOCK bid2]
+ code__2 dst
+ = cond_code
+ `appOL` toOL
+ [ BI cond False bid1
+ , NOP
+
+ , OR False g0 (RIImm (ImmInt 0)) dst
+ , BI ALWAYS False bid2
+ , NOP
+
+ , NEWBLOCK bid1
+ , OR False g0 (RIImm (ImmInt 1)) dst
+ , BI ALWAYS False bid2
+ , NOP
+
+ , NEWBLOCK bid2]
+
return (Any II32 code__2)
return (Any II32 code__2)
@@
-659,12
+669,26
@@
condFltReg cond x y = do
CondCode _ cond cond_code <- condFltCode cond x y
let
CondCode _ cond cond_code <- condFltCode cond x y
let
- code__2 dst = cond_code `appOL` toOL [
- NOP,
- BF cond False bid1, NOP,
- OR False g0 (RIImm (ImmInt 0)) dst,
- BI ALWAYS False bid2, NOP,
- NEWBLOCK bid1,
- OR False g0 (RIImm (ImmInt 1)) dst,
- NEWBLOCK bid2]
+ code__2 dst
+ = cond_code
+ `appOL` toOL
+ [ NOP
+ , BF cond False bid1
+ , NOP
+
+ , OR False g0 (RIImm (ImmInt 0)) dst
+ , BI ALWAYS False bid2
+ , NOP
+
+ , NEWBLOCK bid1
+ , OR False g0 (RIImm (ImmInt 1)) dst
+ , BI ALWAYS False bid2
+ , NOP
+
+ , NEWBLOCK bid2 ]
+
return (Any II32 code__2)
return (Any II32 code__2)
+
+
+
+