48 static bool enabled() { return _enabled; }
49 static void set_enabled(bool z);
50
51 private:
52 static bool _enabled;
53
54 // Adapters.
55 static MethodHandlesAdapterBlob* _adapter_code;
56
57 // utility functions for reifying names and types
58 static oop field_name_or_null(Symbol* s);
59 static oop field_signature_type_or_null(Symbol* s);
60
61 public:
62 // working with member names
63 static Handle resolve_MemberName(Handle mname, Klass* caller,
64 bool speculative_resolve, TRAPS); // compute vmtarget/vmindex from name/type
65 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing
66 static oop init_MemberName(Handle mname_h, Handle target_h, TRAPS); // compute vmtarget/vmindex from target
67 static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false);
68 static oop init_method_MemberName(Handle mname_h, CallInfo& info);
69 static int find_MemberNames(Klass* k, Symbol* name, Symbol* sig,
70 int mflags, Klass* caller,
71 int skip, objArrayHandle results, TRAPS);
72 static Handle resolve_MemberName_type(Handle mname, Klass* caller, TRAPS);
73
74 // bit values for suppress argument to expand_MemberName:
75 enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 };
76
77 // CallSite support
78 static void add_dependent_nmethod(oop call_site, nmethod* nm);
79 static void remove_dependent_nmethod(oop call_site, nmethod* nm);
80 static void clean_dependency_context(oop call_site);
81
82 static void flush_dependent_nmethods(Handle call_site, Handle target);
83
84 // Generate MethodHandles adapters.
85 static void generate_adapters();
86
87 // Called from MethodHandlesAdapterGenerator.
88 static address generate_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid);
|
48 static bool enabled() { return _enabled; }
49 static void set_enabled(bool z);
50
51 private:
52 static bool _enabled;
53
54 // Adapters.
55 static MethodHandlesAdapterBlob* _adapter_code;
56
57 // utility functions for reifying names and types
58 static oop field_name_or_null(Symbol* s);
59 static oop field_signature_type_or_null(Symbol* s);
60
61 public:
62 // working with member names
63 static Handle resolve_MemberName(Handle mname, Klass* caller,
64 bool speculative_resolve, TRAPS); // compute vmtarget/vmindex from name/type
65 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing
66 static oop init_MemberName(Handle mname_h, Handle target_h, TRAPS); // compute vmtarget/vmindex from target
67 static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false);
68 static oop init_method_MemberName(Handle mname_h, CallInfo& info, TRAPS);
69 static int find_MemberNames(Klass* k, Symbol* name, Symbol* sig,
70 int mflags, Klass* caller,
71 int skip, objArrayHandle results, TRAPS);
72 static Handle resolve_MemberName_type(Handle mname, Klass* caller, TRAPS);
73
74 // bit values for suppress argument to expand_MemberName:
75 enum { _suppress_defc = 1, _suppress_name = 2, _suppress_type = 4 };
76
77 // CallSite support
78 static void add_dependent_nmethod(oop call_site, nmethod* nm);
79 static void remove_dependent_nmethod(oop call_site, nmethod* nm);
80 static void clean_dependency_context(oop call_site);
81
82 static void flush_dependent_nmethods(Handle call_site, Handle target);
83
84 // Generate MethodHandles adapters.
85 static void generate_adapters();
86
87 // Called from MethodHandlesAdapterGenerator.
88 static address generate_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid);
|