SPARC NCG: Fix 64bit integers returned from ccalls
[ghc-hetmet.git] / compiler / nativeGen / MachCodeGen.hs
index e90b40c..081947e 100644 (file)
@@ -3667,6 +3667,12 @@ genCCall target dest_regs argsAndHints = do
                        | not $ isFloatType rep
                        , W32   <- width
                        = unitOL $ mkRegRegMoveInstr (RealReg $ oReg 0) r_dest
+
+                       | not $ isFloatType rep
+                       , W64           <- width
+                       , r_dest_hi     <- getHiVRegFromLo r_dest
+                       = toOL  [ mkRegRegMoveInstr (RealReg $ oReg 0) r_dest_hi
+                               , mkRegRegMoveInstr (RealReg $ oReg 1) r_dest]
                        
           in   result