Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/e2f6bbd3a27685bc667655fdb093734cb565b4cf >--------------------------------------------------------------- commit e2f6bbd3a27685bc667655fdb093734cb565b4cf Author: Geoffrey Mainland <[email protected]> Date: Fri Oct 5 15:19:55 2012 +0100 Draw STG F and D registers from the same pool of available SSE registers on x86-64. On x86-64 F and D registers are both drawn from SSE registers, so there is no reason not to draw them from the same pool of available SSE registers. This means that whereas previously a function could only receive two Double arguments in registers even if it did not have any Float arguments, now it can receive up to 6 arguments that are any mix of Float and Double in registers. This patch breaks the LLVM back end. The next patch will fix this breakage. compiler/cmm/CmmCallConv.hs | 57 +++++++++---- compiler/cmm/CmmParse.y | 5 +- compiler/codeGen/CgUtils.hs | 10 ++- compiler/llvmGen/LlvmCodeGen/Regs.hs | 6 ++ includes/Cmm.h | 16 +++- includes/CodeGen.Platform.hs | 161 ++++++++++++++++++++++++++++++++++ includes/mkDerivedConstants.c | 8 ++ includes/rts/Constants.h | 5 +- includes/stg/MachRegs.h | 62 ++++++++++++-- includes/stg/Regs.h | 42 +++++++++ 10 files changed, 342 insertions(+), 30 deletions(-) Diff suppressed because of size. To see it, use: git show e2f6bbd3a27685bc667655fdb093734cb565b4cf _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
