SPARC NCG: Fix 64bit integers returned from ccalls
authorBen.Lippmeier@anu.edu.au <unknown>
Tue, 20 Jan 2009 09:06:17 +0000 (09:06 +0000)
committerBen.Lippmeier@anu.edu.au <unknown>
Tue, 20 Jan 2009 09:06:17 +0000 (09:06 +0000)
compiler/nativeGen/MachCodeGen.hs

index 325a4e8..081947e 100644 (file)
@@ -3669,8 +3669,10 @@ genCCall target dest_regs argsAndHints = do
                        = unitOL $ mkRegRegMoveInstr (RealReg $ oReg 0) r_dest
 
                        | not $ isFloatType rep
-                       , W64   <- width
-                       = unitOL $ mkRegRegMoveInstr (RealReg $ oReg 0) r_dest
+                       , W64           <- width
+                       , r_dest_hi     <- getHiVRegFromLo r_dest
+                       = toOL  [ mkRegRegMoveInstr (RealReg $ oReg 0) r_dest_hi
+                               , mkRegRegMoveInstr (RealReg $ oReg 1) r_dest]
                        
           in   result