OpenMethodExecutionParams Struct Reference

#include <jit_export.h>

List of all members.


Detailed Description

Elements of this struct correspond to certain requirements of how a managed method is executed (what it additionally does during execution).

Most of them correspond to requirements to call a certain VM helpers at certain places in the code. For JIT, in particular, this means that it will have to generate additional code which will perform these calls.

Each of the requirement is associated with a corresponding ability of the EE to satisfy this requirement. So, elements of the struct should also be used to denote EE capabilities related to method execution.

If an element corresponds to a certain VM helper, concrete contract of calling this helper (arguments, etc.) can be found at the place of definition of this helper (or its ID) within present OPEN specification.


Public Attributes

Boolean exe_notify_method_entry: 1
 call corresponding VM helper upon entry to the managed method
Boolean exe_notify_method_exit: 1
 call corresponding VM helper upon exit from the managed method
Boolean exe_notify_field_access: 1
 call corresponding VM helper upon reading a value of a field which has <field access="" mask>=""> set
Boolean exe_notify_field_modification: 1
 call corresponding VM helper upon setting a value of a field which has <field modification="" mask>=""> set
Boolean exe_notify_exception_throw: 1
 call corresponding VM helper upon exception throw, if by default the throw code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_notify_exception_catch: 1
 call corresponding VM helper upon exception catch, if by default the exception propagation code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_notify_monitor_enter: 1
 call corresponding VM helper upon entering a monitor, if by default the monitor enter code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_notify_monitor_exit: 1
 call corresponding VM helper upon exiting a monitor, if by default the monitor exit code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_notify_contended_monitor_enter: 1
 call corresponding VM helper upon entering a contended monitor, if by default the contended monitor enter code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_notify_contended_monitor_exit: 1
 call corresponding VM helper upon exiting a contended monitor, if by default the contended monitor exit code does not enter any VM helper (for example, in case of JIT optimizations)
Boolean exe_do_method_inlining: 1
 perform method in-lining during compilation (JIT-specific)
Boolean exe_do_code_mapping: 1
 Keep correspondence between bytecode offsets and native instruction IPs (JIT-specific).
Boolean exe_do_local_var_mapping: 1
 Keep correspondence between bytecode local variables and locations of the native operands (JIT-specific) in relevant locations within method code.
Boolean exe_insert_write_barriers: 1
 call corresponding VM helper upon setting a value of any field of reference type
Boolean exe_provide_access_to_this: 1
 Provide possibility to obtain reference to the current 'this' object by means of get_address_of_this method.
Boolean exe_restore_context_after_unwind: 1
 Provide restoring of arguments in the stack after the call of the unwind_frame method so that method could be called again with the same arguments.
Boolean exe_notify_compiled_method_load: 1
 Sent CompileMethodLoad event when a method is compiled and loaded into memory.


Member Data Documentation

Boolean OpenMethodExecutionParams.exe_notify_method_entry

call corresponding VM helper upon entry to the managed method

Boolean OpenMethodExecutionParams.exe_notify_method_exit

call corresponding VM helper upon exit from the managed method

Boolean OpenMethodExecutionParams.exe_notify_field_access

call corresponding VM helper upon reading a value of a field which has <field access="" mask>=""> set

Boolean OpenMethodExecutionParams.exe_notify_field_modification

call corresponding VM helper upon setting a value of a field which has <field modification="" mask>=""> set

Boolean OpenMethodExecutionParams.exe_notify_exception_throw

call corresponding VM helper upon exception throw, if by default the throw code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_notify_exception_catch

call corresponding VM helper upon exception catch, if by default the exception propagation code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_notify_monitor_enter

call corresponding VM helper upon entering a monitor, if by default the monitor enter code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_notify_monitor_exit

call corresponding VM helper upon exiting a monitor, if by default the monitor exit code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_notify_contended_monitor_enter

call corresponding VM helper upon entering a contended monitor, if by default the contended monitor enter code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_notify_contended_monitor_exit

call corresponding VM helper upon exiting a contended monitor, if by default the contended monitor exit code does not enter any VM helper (for example, in case of JIT optimizations)

Boolean OpenMethodExecutionParams.exe_do_method_inlining

perform method in-lining during compilation (JIT-specific)

Boolean OpenMethodExecutionParams.exe_do_code_mapping

Keep correspondence between bytecode offsets and native instruction IPs (JIT-specific).

For a JIT this, in particular, means that it should not do any optimizations which may hinder this mapping. It should also store the map after method compilation so that later VM could use appropriate ExeJPDA interfaces to retrieve the mapping.

Boolean OpenMethodExecutionParams.exe_do_local_var_mapping

Keep correspondence between bytecode local variables and locations of the native operands (JIT-specific) in relevant locations within method code.

For a JIT this, in particular, means that it should not do any optimizations which may hinder this mapping. It should also store the map after method compilation so that later VM could use appropriate ExeJPDA interfaces to retrieve the mapping.

Boolean OpenMethodExecutionParams.exe_insert_write_barriers

call corresponding VM helper upon setting a value of any field of reference type

Boolean OpenMethodExecutionParams.exe_provide_access_to_this

Provide possibility to obtain reference to the current 'this' object by means of get_address_of_this method.

Used for JVMTI debug support.

Boolean OpenMethodExecutionParams.exe_restore_context_after_unwind

Provide restoring of arguments in the stack after the call of the unwind_frame method so that method could be called again with the same arguments.

Used for JVMTI debug support.

Boolean OpenMethodExecutionParams.exe_notify_compiled_method_load

Sent CompileMethodLoad event when a method is compiled and loaded into memory.


The documentation for this struct was generated from the following file:

Genereated on Wed Mar 5 17:54:50 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.