[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