Fixing native code generator for PowerPC
[ghc-hetmet.git] / compiler / nativeGen / MachCodeGen.hs
index 1d1cfa1..b29b59e 100644 (file)
@@ -42,7 +42,6 @@ import FastTypes      ( isFastTrue )
 import Constants       ( wORD_SIZE )
 
 #ifdef DEBUG
-import Outputable      ( assertPanic )
 import Debug.Trace     ( trace )
 #endif
 
@@ -370,7 +369,7 @@ assignMem_I64Code addrTree valueTree = do
        -- in
        return (vcode `appOL` addr_code `snocOL` mov_lo `snocOL` mov_hi)
 
-assignReg_I64Code (CmmLocal (LocalReg u_dst pk)) valueTree = do
+assignReg_I64Code (CmmLocal (LocalReg u_dst pk _)) valueTree = do
    ChildCode64 vcode r_src_lo <- iselExpr64 valueTree
    let 
          r_dst_lo = mkVReg u_dst I32
@@ -3323,8 +3322,8 @@ genCCall target dest_regs args = do
                F64 -> unitOL (MOV rep (OpReg xmm0) (OpReg r_dest))
                rep -> unitOL (MOV rep (OpReg rax) (OpReg r_dest))
          where 
-               rep = cmmRegRep dest
-               r_dest = getRegisterReg dest
+               rep = localRegRep dest
+               r_dest = getRegisterReg (CmmLocal dest)
        assign_code many = panic "genCCall.assign_code many"
 
     return (load_args_code     `appOL` 
@@ -3619,7 +3618,7 @@ outOfLineFloatOp mop =
 -}
 
 
-genCCall (CmmPrim MO_WriteBarrier) _ _ _
+genCCall (CmmPrim MO_WriteBarrier) _ _ 
  = return $ unitOL LWSYNC
 
 genCCall target dest_regs argsAndHints
@@ -3783,8 +3782,8 @@ genCCall target dest_regs argsAndHints
                     | rep == I64 -> toOL [MR (getHiVRegFromLo r_dest) r3,
                                           MR r_dest r4]
                     | otherwise -> unitOL (MR r_dest r3)
-                    where rep = cmmRegRep dest
-                          r_dest = getRegisterReg dest
+                    where rep = cmmRegRep (CmmLocal dest)
+                          r_dest = getRegisterReg (CmmLocal dest)
                           
         outOfLineFloatOp mop =
             do