[Mono-list] lmf handling
Ferguson, Neale
Neale.Ferguson@SoftwareAG-USA.com
Fri, 16 Apr 2004 07:59:29 -0600
Hi,
I am trying to understand lmf chaining for the JIT. Is this the way it
works:
1. Following setup_jit_tls
*--------------* *-------------*
| jit_tls->lmf |---->| Initial LMF |
*--------------* *-------------*
- previous_lmf = NULL
- ebp = -1
2. Following emit_prolog where save_lmf is indicated:
- Option 1
*--------------* *-------------* *-------------*
| jit_tls->lmf |---->| New LMF |---------->| Initial LMF |
*--------------* *-------------* *-------------*
- lmf_addr = jit_tls->lmf
- previous_lmf = Initial LMF
- ebp = stack ptr
- eip = current instruction
- Option 2
*--------------* *-------------* *-------------*
| jit_tls->lmf |---->| Initial LMF |----------->| New LMF |
*--------------* *-------------* *-------------*
- previous_lmf = New LMF - lmf_addr =
jit_tls->lmf
-
previous_lmf = Null
- ebp =
stack ptr
- eip =
current instruction
3. Following emit_epilog:
*--------------* *-------------*
| jit_tls->lmf |---->| Initial LMF |
*--------------* *-------------*
- previous_lmf = NULL
- ebp = -1
Neale