X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmCPSGen.hs;h=da72b541baf893b6e18c45fcefcea4f79584f67d;hb=a9eda06434ea9fb4764c2a587ccd53df09f7c470;hp=c78525eb671df3867587d0ff0dde00bd515d51cb;hpb=f770022bd9c3c3af9a8e384be88d087dba188517;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmCPSGen.hs b/compiler/cmm/CmmCPSGen.hs index c78525e..da72b54 100644 --- a/compiler/cmm/CmmCPSGen.hs +++ b/compiler/cmm/CmmCPSGen.hs @@ -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 @@ -385,7 +386,6 @@ pack_continuation allow_header_set (ContinuationFormat _ cont_id cont_frame_size live_regs) = pack_frame curr_frame_size cont_frame_size maybe_header continuation_args where - continuation_function = CmmLit $ CmmLabel $ fromJust cont_id continuation_args = map (maybe Nothing (Just . CmmReg . CmmLocal)) live_regs needs_header_set = @@ -394,7 +394,7 @@ pack_continuation allow_header_set _ -> isJust cont_id maybe_header = if allow_header_set && needs_header_set - then Just continuation_function + then maybe Nothing (Just . CmmLit . CmmLabel . entryLblToInfoLbl) cont_id else Nothing pack_frame :: WordOff -- ^ Current frame size