X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fcompiler%2FcodeGen%2FCgCallConv.hs;h=f463255807ac2580ca2702d7b0a8debce94996dc;hb=04db0e9fa47ce4dfbcb73ec1752d94195f3b394e;hp=f5232a58d99216191ade2f165e72159fe744c6a1;hpb=174c7f292b3c18c9cc44c21bd07111f351e3913c;p=ghc-hetmet.git diff --git a/ghc/compiler/codeGen/CgCallConv.hs b/ghc/compiler/codeGen/CgCallConv.hs index f5232a5..f463255 100644 --- a/ghc/compiler/codeGen/CgCallConv.hs +++ b/ghc/compiler/codeGen/CgCallConv.hs @@ -206,17 +206,20 @@ mkRegLiveness regs ptrs nptrs -- For a slow call, we must take a bunch of arguments and intersperse -- some stg_ap__ret_info return addresses. -constructSlowCall :: [(CgRep,CmmExpr)] -> (CLabel, [(CgRep,CmmExpr)]) +constructSlowCall + :: [(CgRep,CmmExpr)] + -> (CLabel, -- RTS entry point for call + [(CgRep,CmmExpr)], -- args to pass to the entry point + [(CgRep,CmmExpr)]) -- stuff to save on the stack + -- don't forget the zero case constructSlowCall [] - = (stg_ap_0, []) - where - stg_ap_0 = enterRtsRetLabel SLIT("stg_ap_0") + = (mkRtsApFastLabel SLIT("stg_ap_0"), [], []) constructSlowCall amodes - = (stg_ap_pat, these ++ slowArgs rest) + = (stg_ap_pat, these, rest) where - stg_ap_pat = enterRtsRetLabel arg_pat + stg_ap_pat = mkRtsApFastLabel arg_pat (arg_pat, these, rest) = matchSlowPattern amodes enterRtsRetLabel arg_pat