On 27 May 2010 01:26, Thomas Schilling <nomin...@googlemail.com> wrote:
> Every basic block that performs some allocation is preceded by a heap
> check.  If this test fails, a special RTS routine is invoked.  I'm not
> sure which one this is.  Simon can tell you.

AFAIK it is stg_gc_fun. Sample code:

"""
clE:
    Hp = Hp + 20;
    if (Hp > HpLim) goto clH;
...
clI:
    R1 = Main_buildzudata_closure;
    jump stg_gc_fun ();
clH:
    HpAlloc = 20;
    goto clI;
"""

(So R1 = Main_buildzudata_closure is the address to return to after
GCing and obtaining HpAlloc = 20 words)

Cheers,
Max

_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to