Native Frames

Introduction

The native frames interface is specified by native_frame.h

Native Frame Description

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:

JIT frame

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).

VM Helper frame

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).

VM Native frame

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.

JNI Native frame

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.

Interpreter frame

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.