The native frames interface is specified by native_frame.h
The candidates to fill in the native frame module are former M2nFrames and ObjectHandles.
On this stage of the design process, the following types of the native frames can be imagined:
This frame can have varying representations in memory, depending on the method they are associated with. Normally JIT will save the information about stack frame structure in the method descriptor. This frame can be identified by pair (frame pointer, method handle).
This type of the frame is pushed on the stack when jitted code calls for some runtime helper which needs some object handles to be allocated. Though, this type of the stack frame does not prevent exception propagation, and the exception thrown in native code will be delivered directly to jitted code, as this frame can't have any handler associated with it. (at least yet).
This type of the frame is pushed on the stack when VM needs to make sure that no exception control transfers would be made, for example, when entering to complex synchronization code.
This type of the frame is pushed on the stack when JNI native method is to be called. The frame is used to store local object handles and to prevent destructive stack unwinding over JNI method.
Stack frame used by interpreter. Non-unwindable, as interpreter does not use destructive stack unwinding. The frame is used to store local variables, method stack and may be local object handles for use with
Genereated on Tue Mar 11 19:25:58 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.