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