diff options
author | Michael D. Adams <t-madams@microsoft.com> | 2007-06-27 15:01:33 +0000 |
---|---|---|
committer | Michael D. Adams <t-madams@microsoft.com> | 2007-06-27 15:01:33 +0000 |
commit | 207802589da0d23c3f16195f453b24a1e46e322d (patch) | |
tree | 2a17423ada08e5a890b17132440dda10c4f860bc /compiler/codeGen/CgBindery.lhs | |
parent | bb5c3f58b1da850b68e0745766f2786e538b5fbf (diff) | |
download | haskell-207802589da0d23c3f16195f453b24a1e46e322d.tar.gz |
Added pointerhood to LocalReg
This version should compile but is still incomplete as it introduces
potential bugs at the places marked 'TODO FIXME NOW'.
It is being recorded to help keep track of changes.
Diffstat (limited to 'compiler/codeGen/CgBindery.lhs')
-rw-r--r-- | compiler/codeGen/CgBindery.lhs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/codeGen/CgBindery.lhs b/compiler/codeGen/CgBindery.lhs index d7f2579e76..66ac9bf491 100644 --- a/compiler/codeGen/CgBindery.lhs +++ b/compiler/codeGen/CgBindery.lhs @@ -22,7 +22,7 @@ module CgBindery ( bindArgsToStack, rebindToStack, bindNewToNode, bindNewToReg, bindArgsToRegs, - bindNewToTemp, + bindNewToTemp, getArgAmode, getArgAmodes, getCgIdInfo, getCAddrModeIfVolatile, getVolatileRegs, @@ -391,13 +391,16 @@ bindNewToNode id offset lf_info -- Create a new temporary whose unique is that in the id, -- bind the id to it, and return the addressing mode for the -- temporary. -bindNewToTemp :: Id -> FCode CmmReg +bindNewToTemp :: Id -> FCode LocalReg bindNewToTemp id - = do addBindC id (regIdInfo id temp_reg lf_info) + = do addBindC id (regIdInfo id (CmmLocal temp_reg) lf_info) return temp_reg where uniq = getUnique id - temp_reg = CmmLocal (LocalReg uniq (argMachRep (idCgRep id))) + temp_reg = LocalReg uniq (argMachRep (idCgRep id)) kind + kind = if isFollowableArg (idCgRep id) + then KindPtr + else KindNonPtr lf_info = mkLFArgument id -- Always used of things we -- know nothing about |