Changes between Version 14 and Version 15 of Commentary/ResourceLimits


Ignore:
Timestamp:
Sep 2, 2013 3:32:42 AM (8 months 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