projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed linear regalloc bug, dropped some tracing code
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
RegArchX86.hs
diff --git
a/compiler/nativeGen/RegArchX86.hs
b/compiler/nativeGen/RegArchX86.hs
index
21ac781
..
c6c3050
100644
(file)
--- a/
compiler/nativeGen/RegArchX86.hs
+++ b/
compiler/nativeGen/RegArchX86.hs
@@
-5,6
+5,7
@@
-- See RegArchBase.hs for the reference.
-- See MachRegs.hs for the actual trivColorable function used in GHC.
--
-- See RegArchBase.hs for the reference.
-- See MachRegs.hs for the actual trivColorable function used in GHC.
--
+
module RegArchX86 (
classOfReg,
regsOfClass,
module RegArchX86 (
classOfReg,
regsOfClass,
@@
-22,11
+23,11
@@
import UniqSet
classOfReg :: Reg -> RegClass
classOfReg reg
= case reg of
classOfReg :: Reg -> RegClass
classOfReg reg
= case reg of
- Reg c i -> c
+ Reg c _ -> c
- RegSub SubL16 r -> ClassG16
- RegSub SubL8 r -> ClassG8
- RegSub SubL8H r -> ClassG8
+ RegSub SubL16 _ -> ClassG16
+ RegSub SubL8 _ -> ClassG8
+ RegSub SubL8H _ -> ClassG8
-- | Determine all the regs that make up a certain class.
-- | Determine all the regs that make up a certain class.
@@
-88,18
+89,18
@@
regAlias reg
-- 16 bit subregs alias the whole reg
-- 16 bit subregs alias the whole reg
- RegSub SubL16 r@(Reg ClassG32 i)
+ RegSub SubL16 r@(Reg ClassG32 _)
-> regAlias r
-- 8 bit subregs alias the 32 and 16, but not the other 8 bit subreg
-> regAlias r
-- 8 bit subregs alias the 32 and 16, but not the other 8 bit subreg
- RegSub SubL8 r@(Reg ClassG32 i)
+ RegSub SubL8 r@(Reg ClassG32 _)
-> mkUniqSet $ [ r, RegSub SubL16 r, RegSub SubL8 r ]
-> mkUniqSet $ [ r, RegSub SubL16 r, RegSub SubL8 r ]
- RegSub SubL8H r@(Reg ClassG32 i)
+ RegSub SubL8H r@(Reg ClassG32 _)
-> mkUniqSet $ [ r, RegSub SubL16 r, RegSub SubL8H r ]
-- fp
-> mkUniqSet $ [ r, RegSub SubL16 r, RegSub SubL8H r ]
-- fp
- Reg ClassF64 i
+ Reg ClassF64 _
-> unitUniqSet reg
_ -> error "regAlias: invalid register"
-> unitUniqSet reg
_ -> error "regAlias: invalid register"