summaryrefslogtreecommitdiff
path: root/compiler/nativeGen/SPARC/CodeGen.hs
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2012-08-28 20:52:44 +0100
committerIan Lynagh <ian@well-typed.com>2012-08-28 20:52:44 +0100
commitc0907ed27351e4160c0c8b2a5c9877899d87aae9 (patch)
treeae34750faa31e4c334ef9e3a5556093d30c11dea /compiler/nativeGen/SPARC/CodeGen.hs
parent0e7d2906e706acdd716f121abb19c433986ae830 (diff)
downloadhaskell-c0907ed27351e4160c0c8b2a5c9877899d87aae9.tar.gz
Move more code into codeGen/CodeGen/Platform.hs
HaskellMachRegs.h is no longer included in anything under compiler/ Also, includes/CodeGen.Platform.hs now includes "stg/MachRegs.h" rather than <stg/MachRegs.h> which means that we always get the file from the tree, rather than from the bootstrapping compiler.
Diffstat (limited to 'compiler/nativeGen/SPARC/CodeGen.hs')
-rw-r--r--compiler/nativeGen/SPARC/CodeGen.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/nativeGen/SPARC/CodeGen.hs b/compiler/nativeGen/SPARC/CodeGen.hs
index 840918281f..a3409dd28b 100644
--- a/compiler/nativeGen/SPARC/CodeGen.hs
+++ b/compiler/nativeGen/SPARC/CodeGen.hs
@@ -191,12 +191,12 @@ assignMem_IntCode pk addr src = do
assignReg_IntCode :: Size -> CmmReg -> CmmExpr -> NatM InstrBlock
assignReg_IntCode _ reg src = do
+ dflags <- getDynFlags
r <- getRegister src
+ let dst = getRegisterReg (targetPlatform dflags) reg
return $ case r of
Any _ code -> code dst
Fixed _ freg fcode -> fcode `snocOL` OR False g0 (RIReg freg) dst
- where
- dst = getRegisterReg reg
@@ -218,8 +218,10 @@ assignMem_FltCode pk addr src = do
-- Floating point assignment to a register/temporary
assignReg_FltCode :: Size -> CmmReg -> CmmExpr -> NatM InstrBlock
assignReg_FltCode pk dstCmmReg srcCmmExpr = do
+ dflags <- getDynFlags
+ let platform = targetPlatform dflags
srcRegister <- getRegister srcCmmExpr
- let dstReg = getRegisterReg dstCmmReg
+ let dstReg = getRegisterReg platform dstCmmReg
return $ case srcRegister of
Any _ code -> code dstReg
@@ -537,7 +539,7 @@ assign_code _ [] = nilOL
assign_code platform [CmmHinted dest _hint]
= let rep = localRegType dest
width = typeWidth rep
- r_dest = getRegisterReg (CmmLocal dest)
+ r_dest = getRegisterReg platform (CmmLocal dest)
result
| isFloatType rep