--- old/src/hotspot/cpu/x86/interp_masm_x86.cpp 2019-05-01 16:15:22.000000000 -0700 +++ new/src/hotspot/cpu/x86/interp_masm_x86.cpp 2019-05-01 16:15:21.000000000 -0700 @@ -524,6 +524,19 @@ movptr(klass, Address(resolved_klasses, index, Address::times_ptr, Array::base_offset_in_bytes())); } +void InterpreterMacroAssembler::load_resolved_method_at_index(int byte_no, + Register cache, + Register index, + Register method) { + const int method_offset = in_bytes( + ConstantPoolCache::base_offset() + + ((byte_no == TemplateTable::f2_byte) + ? ConstantPoolCacheEntry::f2_offset() + : ConstantPoolCacheEntry::f1_offset())); + + movptr(method, Address(cache, index, Address::times_ptr, method_offset)); // get f1 Method* +} + // Generate a subtype check: branch to ok_is_subtype if sub_klass is a // subtype of super_klass. //