Fixed CPS to account for info tables not being next to code
[ghc-hetmet.git] / compiler / cmm / CmmCPSGen.hs
index abea84f..da72b54 100644 (file)
@@ -17,6 +17,7 @@ import CmmCallConv
 
 import CgProf (curCCS, curCCSAddr)
 import CgUtils (cmmOffsetW)
+import CgInfoTbls (entryCode)
 import SMRep
 import ForeignCall
 
@@ -178,7 +179,7 @@ continuationToProc (max_stack, update_frame_size, formats) stack_use uniques
                         FinalSwitch expr targets -> [CmmSwitch expr targets]
                         FinalReturn arguments ->
                             tail_call curr_stack
-                                (CmmLoad (CmmReg spReg) wordRep)
+                                (entryCode (CmmLoad (CmmReg spReg) wordRep))
                                 arguments
                         FinalJump target arguments ->
                             tail_call curr_stack target arguments
@@ -393,7 +394,7 @@ pack_continuation allow_header_set
           _ -> isJust cont_id
 
     maybe_header = if allow_header_set && needs_header_set
-                   then maybe Nothing (Just . CmmLit . CmmLabel) cont_id
+                   then maybe Nothing (Just . CmmLit . CmmLabel . entryLblToInfoLbl) cont_id
                    else Nothing
 
 pack_frame :: WordOff         -- ^ Current frame size