- code (emitInfoTableAndCode info_lbl info formals []) }
-
- | NAME maybe_formals '{' body '}'
- { do formals <- sequence $2;
- stmts <- getCgStmtsEC (loopDecls $4);
- blks <- code (cgStmtsToBlocks stmts);
- code (emitProc (CmmNonInfo Nothing) (mkRtsCodeLabelFS $1) formals blks) }
-
-info :: { ExtFCode (CLabel, CmmInfo) }
+ code (emitInfoTableAndCode entry_ret_label (CmmInfo Nothing Nothing info) formals []) }
+
+ | NAME maybe_formals maybe_frame maybe_gc_block '{' body '}'
+ { do ((formals, frame, gc_block), stmts) <-
+ getCgStmtsEC' $ loopDecls $ do {
+ formals <- sequence $2;
+ frame <- $3;
+ gc_block <- $4;
+ $6;
+ return (formals, frame, gc_block) }
+ blks <- code (cgStmtsToBlocks stmts)
+ code (emitProc (CmmInfo gc_block frame CmmNonInfoTable) (mkRtsCodeLabelFS $1) formals blks) }
+
+info :: { ExtFCode (CLabel, CmmInfoTable, [Maybe LocalReg]) }