projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Better handling of join points in spill cleaner
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
MachInstrs.hs
diff --git
a/compiler/nativeGen/MachInstrs.hs
b/compiler/nativeGen/MachInstrs.hs
index
96db72d
..
0c5dbdd
100644
(file)
--- a/
compiler/nativeGen/MachInstrs.hs
+++ b/
compiler/nativeGen/MachInstrs.hs
@@
-52,8
+52,8
@@
import GHC.Exts
-- Our flavours of the Cmm types
-- Type synonyms for Cmm populated with native code
-- Our flavours of the Cmm types
-- Type synonyms for Cmm populated with native code
-type NatCmm = GenCmm CmmStatic Instr
-type NatCmmTop = GenCmmTop CmmStatic Instr
+type NatCmm = GenCmm CmmStatic [CmmStatic] Instr
+type NatCmmTop = GenCmmTop CmmStatic [CmmStatic] Instr
type NatBasicBlock = GenBasicBlock Instr
-- -----------------------------------------------------------------------------
type NatBasicBlock = GenBasicBlock Instr
-- -----------------------------------------------------------------------------
@@
-226,6
+226,9
@@
data Instr
| DELTA Int -- specify current stack offset for
-- benefit of subsequent passes
| DELTA Int -- specify current stack offset for
-- benefit of subsequent passes
+ | SPILL Reg Int -- ^ spill this reg to a stack slot
+ | RELOAD Int Reg -- ^ reload this reg from a stack slot
+
-- -----------------------------------------------------------------------------
-- Alpha instructions
-- -----------------------------------------------------------------------------
-- Alpha instructions
@@
-488,8
+491,8
@@
bit or 64 bit precision.
| CVTSS2SD Reg Reg -- F32 to F64
| CVTSD2SS Reg Reg -- F64 to F32
| CVTSS2SD Reg Reg -- F32 to F64
| CVTSD2SS Reg Reg -- F64 to F32
- | CVTSS2SI Operand Reg -- F32 to I32/I64 (with rounding)
- | CVTSD2SI Operand Reg -- F64 to I32/I64 (with rounding)
+ | CVTTSS2SIQ Operand Reg -- F32 to I32/I64 (with truncation)
+ | CVTTSD2SIQ Operand Reg -- F64 to I32/I64 (with truncation)
| CVTSI2SS Operand Reg -- I32/I64 to F32
| CVTSI2SD Operand Reg -- I32/I64 to F64
| CVTSI2SS Operand Reg -- I32/I64 to F32
| CVTSI2SD Operand Reg -- I32/I64 to F64