import CgProf (curCCS, curCCSAddr)
import CgUtils (cmmOffsetW)
+import CgInfoTbls (entryCode)
import SMRep
import ForeignCall
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
(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 =
_ -> 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