mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8254231: Implementation of Foreign Linker API (Incubator)
Reviewed-by: coleenp, ihse, dholmes, vlivanov
This commit is contained in:
parent
53f38353e0
commit
0fb31dbf3a
212 changed files with 67390 additions and 179 deletions
|
@ -75,6 +75,7 @@ class RecordComponent;
|
|||
f(java_lang_StackFrameInfo) \
|
||||
f(java_lang_LiveStackFrameInfo) \
|
||||
f(java_util_concurrent_locks_AbstractOwnableSynchronizer) \
|
||||
f(jdk_internal_invoke_NativeEntryPoint) \
|
||||
f(jdk_internal_misc_UnsafeConstants) \
|
||||
f(java_lang_boxing_object) \
|
||||
f(vector_VectorPayload) \
|
||||
|
@ -1008,6 +1009,51 @@ class java_lang_invoke_LambdaForm: AllStatic {
|
|||
static int vmentry_offset() { CHECK_INIT(_vmentry_offset); }
|
||||
};
|
||||
|
||||
// Interface to java.lang.invoke.NativeEntryPoint objects
|
||||
// (These are a private interface for managing adapter code generation.)
|
||||
|
||||
class jdk_internal_invoke_NativeEntryPoint: AllStatic {
|
||||
friend class JavaClasses;
|
||||
|
||||
private:
|
||||
static int _addr_offset; // type is jlong
|
||||
static int _shadow_space_offset;
|
||||
static int _argMoves_offset;
|
||||
static int _returnMoves_offset;
|
||||
static int _need_transition_offset;
|
||||
static int _method_type_offset;
|
||||
static int _name_offset;
|
||||
|
||||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
|
||||
// Accessors
|
||||
static address addr(oop entry);
|
||||
static jint shadow_space(oop entry);
|
||||
static oop argMoves(oop entry);
|
||||
static oop returnMoves(oop entry);
|
||||
static jboolean need_transition(oop entry);
|
||||
static oop method_type(oop entry);
|
||||
static oop name(oop entry);
|
||||
|
||||
// Testers
|
||||
static bool is_subclass(Klass* klass) {
|
||||
return SystemDictionary::NativeEntryPoint_klass() != NULL &&
|
||||
klass->is_subclass_of(SystemDictionary::NativeEntryPoint_klass());
|
||||
}
|
||||
static bool is_instance(oop obj);
|
||||
|
||||
// Accessors for code generation:
|
||||
static int addr_offset_in_bytes() { return _addr_offset; }
|
||||
static int shadow_space_offset_in_bytes() { return _shadow_space_offset; }
|
||||
static int argMoves_offset_in_bytes() { return _argMoves_offset; }
|
||||
static int returnMoves_offset_in_bytes() { return _returnMoves_offset; }
|
||||
static int need_transition_offset_in_bytes() { return _need_transition_offset; }
|
||||
static int method_type_offset_in_bytes() { return _method_type_offset; }
|
||||
static int name_offset_in_bytes() { return _name_offset; }
|
||||
};
|
||||
|
||||
// Interface to java.lang.invoke.MemberName objects
|
||||
// (These are a private interface for Java code to query the class hierarchy.)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue