33 // Additional helper methods for MethodHandles code generation: |
33 // Additional helper methods for MethodHandles code generation: |
34 public: |
34 public: |
35 static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg); |
35 static void load_klass_from_Class(MacroAssembler* _masm, Register klass_reg); |
36 |
36 |
37 static void verify_klass(MacroAssembler* _masm, |
37 static void verify_klass(MacroAssembler* _masm, |
38 Register obj, KlassHandle klass, |
38 Register obj, SystemDictionary::WKID klass_id, |
39 const char* error_message = "wrong klass") NOT_DEBUG_RETURN; |
39 const char* error_message = "wrong klass") NOT_DEBUG_RETURN; |
40 |
40 |
41 static void verify_method_handle(MacroAssembler* _masm, Register mh_reg) { |
41 static void verify_method_handle(MacroAssembler* _masm, Register mh_reg) { |
42 verify_klass(_masm, mh_reg, SystemDictionaryHandles::MethodHandle_klass(), |
42 verify_klass(_masm, mh_reg, SystemDictionary::WK_KLASS_ENUM_NAME(java_lang_invoke_MethodHandle), |
43 "reference is a MH"); |
43 "reference is a MH"); |
44 } |
44 } |
45 |
45 |
46 static void verify_ref_kind(MacroAssembler* _masm, int ref_kind, Register member_reg, Register temp) NOT_DEBUG_RETURN; |
46 static void verify_ref_kind(MacroAssembler* _masm, int ref_kind, Register member_reg, Register temp) NOT_DEBUG_RETURN; |
47 |
47 |