#include <jit_export.h>
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. |
call corresponding VM helper upon entry to the managed method
call corresponding VM helper upon exit from the managed method
call corresponding VM helper upon reading a value of a field which has <field access="" mask>=""> set
call corresponding VM helper upon setting a value of a field which has <field modification="" mask>=""> set
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)
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)
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)
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)
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)
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)
perform method in-lining during compilation (JIT-specific)
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.
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.
call corresponding VM helper upon setting a value of any field of reference type
Provide possibility to obtain reference to the current 'this' object by means of get_address_of_this method.
Used for JVMTI debug support.
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.
Sent CompileMethodLoad event when a method is compiled and loaded into memory.
Genereated on Wed Mar 5 17:54:35 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.