Changes between Version 14 and Version 15 of Commentary/ResourceLimits


Ignore:
Timestamp:
Sep 2, 2013 3:32:42 AM (2 years ago)
Author:
ezyang
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/ResourceLimits

    v14 v15  
    3636
    3737[[GhcFile(compiler/codeGen/StgCmmBind.hs)]]:link_caf
     38
     39{{{
     40//   ; hp_rel <- allocDynClosureCmm Nothing cafBlackHoleInfoTable mkLFBlackHole use_cc blame_cc [(tso,fixedHdrSize dflags)]
     41         I64[I64[R1 + 8] + 72] = I64[I64[R1 + 8] + 72] + %MO_UU_Conv_W64_W64(4 - 2);
     42         I64[Hp - 24] = stg_CAF_BLACKHOLE_info;
     43         I64[Hp - 16] = I64[R1 + 8]; // DIFFERENCE: costCentreFrom dflags (CmmReg nodeReg)
     44         I64[Hp - 8] = (%MO_UU_Conv_W32_W64(I32[era]) << 30) | 0;
     45         I64[Hp + 0] = CurrentTSO;
     46//  emitRtsCallGen [(ret,NoHint)] (mkForeignLabel (fsLit "newCAF") Nothing ForeignLabelInExternalPackage IsFunction) ...
     47         (_cmt::I64,) = foreign "ccall"
     48           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 24, PtrHint));
     49// Atomic CAF entry
     50         if (_cmt::I64 == 0) goto cmu;
     51         goto cmv;
     52
     53}}}
     54
     55Changes to:
     56
     57{{{
     58// XXX change nursery to Bdescr(R1)->rc
     59// XXX where is the heap check?
     60         I64[Hp - 8] = stg_CAF_BLACKHOLE_info;
     61         I64[Hp + 0] = CurrentTSO;
     62// XXX change nursery back
     63         (_cmt::I64,) = foreign "ccall"
     64           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 24, PtrHint));
     65         if (_cmt::I64 == 0) goto cmu;
     66         goto cmv;
     67}}}
    3868
    3969