src/share/vm/c1/c1_CodeStubs.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/c1/c1_CodeStubs.hpp

src/share/vm/c1/c1_CodeStubs.hpp

Print this page
rev 5100 : 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
Summary: Do patching rather bailing out for unlinked call with appendix
Reviewed-by: twisti, kvn

*** 362,372 **** class PatchingStub: public CodeStub { public: enum PatchID { access_field_id, load_klass_id, ! load_mirror_id }; enum constants { patch_info_size = 3 }; private: --- 362,373 ---- class PatchingStub: public CodeStub { public: enum PatchID { access_field_id, load_klass_id, ! load_mirror_id, ! load_appendix_id }; enum constants { patch_info_size = 3 }; private:
*** 415,425 **** case lir_patch_normal: field_offset = 0; break; default: ShouldNotReachHere(); } NativeMovRegMem* n_move = nativeMovRegMem_at(pc_start()); n_move->set_offset(field_offset); ! } else if (_id == load_klass_id || _id == load_mirror_id) { assert(_obj != noreg, "must have register object for load_klass/load_mirror"); #ifdef ASSERT // verify that we're pointing at a NativeMovConstReg nativeMovConstReg_at(pc_start()); #endif --- 416,426 ---- case lir_patch_normal: field_offset = 0; break; default: ShouldNotReachHere(); } NativeMovRegMem* n_move = nativeMovRegMem_at(pc_start()); n_move->set_offset(field_offset); ! } else if (_id == load_klass_id || _id == load_mirror_id || _id == load_appendix_id) { assert(_obj != noreg, "must have register object for load_klass/load_mirror"); #ifdef ASSERT // verify that we're pointing at a NativeMovConstReg nativeMovConstReg_at(pc_start()); #endif
src/share/vm/c1/c1_CodeStubs.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File