< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page

1031   }
1032   static bool is_instance(oop obj);
1033 
1034   // Accessors for code generation:
1035   static int vmentry_offset()          { CHECK_INIT(_vmentry_offset); }
1036 };
1037 
1038 // Interface to java.lang.invoke.NativeEntryPoint objects
1039 // (These are a private interface for managing adapter code generation.)
1040 
1041 class jdk_internal_invoke_NativeEntryPoint: AllStatic {
1042   friend class JavaClasses;
1043 
1044  private:
1045   static int _shadow_space_offset;
1046   static int _argMoves_offset;
1047   static int _returnMoves_offset;
1048   static int _need_transition_offset;
1049   static int _method_type_offset;
1050   static int _name_offset;

1051 
1052   static void compute_offsets();
1053 
1054  public:
1055   static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
1056 
1057   // Accessors
1058   static jint       shadow_space(oop entry);
1059   static oop        argMoves(oop entry);
1060   static oop        returnMoves(oop entry);
1061   static jboolean   need_transition(oop entry);
1062   static oop        method_type(oop entry);
1063   static oop        name(oop entry);

1064 
1065   // Testers
1066   static bool is_subclass(Klass* klass) {
1067     return vmClasses::NativeEntryPoint_klass() != NULL &&
1068       klass->is_subclass_of(vmClasses::NativeEntryPoint_klass());
1069   }
1070   static bool is_instance(oop obj);
1071 
1072   // Accessors for code generation:
1073   static int shadow_space_offset_in_bytes()    { return _shadow_space_offset;    }
1074   static int argMoves_offset_in_bytes()        { return _argMoves_offset;        }
1075   static int returnMoves_offset_in_bytes()     { return _returnMoves_offset;     }
1076   static int need_transition_offset_in_bytes() { return _need_transition_offset; }
1077   static int method_type_offset_in_bytes()     { return _method_type_offset;     }
1078   static int name_offset_in_bytes()            { return _name_offset;            }

1079 };
1080 
1081 // Interface to java.lang.invoke.MemberName objects
1082 // (These are a private interface for Java code to query the class hierarchy.)
1083 
1084 #define RESOLVEDMETHOD_INJECTED_FIELDS(macro)                                   \
1085   macro(java_lang_invoke_ResolvedMethodName, vmholder, object_signature, false) \
1086   macro(java_lang_invoke_ResolvedMethodName, vmtarget, intptr_signature, false)
1087 
1088 class java_lang_invoke_ResolvedMethodName : AllStatic {
1089   friend class JavaClasses;
1090 
1091   static int _vmtarget_offset;
1092   static int _vmholder_offset;
1093 
1094   static void compute_offsets();
1095  public:
1096   static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
1097 
1098   static int vmtarget_offset() { CHECK_INIT(_vmtarget_offset); }

1031   }
1032   static bool is_instance(oop obj);
1033 
1034   // Accessors for code generation:
1035   static int vmentry_offset()          { CHECK_INIT(_vmentry_offset); }
1036 };
1037 
1038 // Interface to java.lang.invoke.NativeEntryPoint objects
1039 // (These are a private interface for managing adapter code generation.)
1040 
1041 class jdk_internal_invoke_NativeEntryPoint: AllStatic {
1042   friend class JavaClasses;
1043 
1044  private:
1045   static int _shadow_space_offset;
1046   static int _argMoves_offset;
1047   static int _returnMoves_offset;
1048   static int _need_transition_offset;
1049   static int _method_type_offset;
1050   static int _name_offset;
1051   static int _invoker_offset;
1052 
1053   static void compute_offsets();
1054 
1055  public:
1056   static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
1057 
1058   // Accessors
1059   static jint       shadow_space(oop entry);
1060   static oop        argMoves(oop entry);
1061   static oop        returnMoves(oop entry);
1062   static jboolean   need_transition(oop entry);
1063   static oop        method_type(oop entry);
1064   static oop        name(oop entry);
1065   static jlong      invoker(oop entry);
1066 
1067   // Testers
1068   static bool is_subclass(Klass* klass) {
1069     return vmClasses::NativeEntryPoint_klass() != NULL &&
1070       klass->is_subclass_of(vmClasses::NativeEntryPoint_klass());
1071   }
1072   static bool is_instance(oop obj);
1073 
1074   // Accessors for code generation:
1075   static int shadow_space_offset_in_bytes()    { return _shadow_space_offset;    }
1076   static int argMoves_offset_in_bytes()        { return _argMoves_offset;        }
1077   static int returnMoves_offset_in_bytes()     { return _returnMoves_offset;     }
1078   static int need_transition_offset_in_bytes() { return _need_transition_offset; }
1079   static int method_type_offset_in_bytes()     { return _method_type_offset;     }
1080   static int name_offset_in_bytes()            { return _name_offset;            }
1081   static int invoker_offset_in_bytes()         { return _invoker_offset;         }
1082 };
1083 
1084 // Interface to java.lang.invoke.MemberName objects
1085 // (These are a private interface for Java code to query the class hierarchy.)
1086 
1087 #define RESOLVEDMETHOD_INJECTED_FIELDS(macro)                                   \
1088   macro(java_lang_invoke_ResolvedMethodName, vmholder, object_signature, false) \
1089   macro(java_lang_invoke_ResolvedMethodName, vmtarget, intptr_signature, false)
1090 
1091 class java_lang_invoke_ResolvedMethodName : AllStatic {
1092   friend class JavaClasses;
1093 
1094   static int _vmtarget_offset;
1095   static int _vmholder_offset;
1096 
1097   static void compute_offsets();
1098  public:
1099   static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
1100 
1101   static int vmtarget_offset() { CHECK_INIT(_vmtarget_offset); }
< prev index next >