[commit: ghc] master: Draw STG F and D registers from the same pool of available SSE registers on x86-64. (e2f6bbd)

Geoffrey Mainland <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.