69 void CodeInstaller::pd_patch_MetaspaceConstant(int pc_offset, Handle constant, TRAPS) { |
69 void CodeInstaller::pd_patch_MetaspaceConstant(int pc_offset, Handle constant, TRAPS) { |
70 address pc = _instructions->start() + pc_offset; |
70 address pc = _instructions->start() + pc_offset; |
71 if (HotSpotMetaspaceConstantImpl::compressed(constant)) { |
71 if (HotSpotMetaspaceConstantImpl::compressed(constant)) { |
72 #ifdef _LP64 |
72 #ifdef _LP64 |
73 NativeMovConstReg32* move = nativeMovConstReg32_at(pc); |
73 NativeMovConstReg32* move = nativeMovConstReg32_at(pc); |
74 narrowKlass narrowOop = record_narrow_metadata_reference(constant, CHECK); |
74 narrowKlass narrowOop = record_narrow_metadata_reference(_instructions, pc, constant, CHECK); |
75 move->set_data((intptr_t)narrowOop); |
75 move->set_data((intptr_t)narrowOop); |
76 TRACE_jvmci_3("relocating (narrow metaspace constant) at " PTR_FORMAT "/0x%x", p2i(pc), narrowOop); |
76 TRACE_jvmci_3("relocating (narrow metaspace constant) at " PTR_FORMAT "/0x%x", p2i(pc), narrowOop); |
77 #else |
77 #else |
78 JVMCI_ERROR("compressed Klass* on 32bit"); |
78 JVMCI_ERROR("compressed Klass* on 32bit"); |
79 #endif |
79 #endif |
80 } else { |
80 } else { |
81 NativeMovConstReg* move = nativeMovConstReg_at(pc); |
81 NativeMovConstReg* move = nativeMovConstReg_at(pc); |
82 void* reference = record_metadata_reference(constant, CHECK); |
82 void* reference = record_metadata_reference(_instructions, pc, constant, CHECK); |
83 move->set_data((intptr_t)reference); |
83 move->set_data((intptr_t)reference); |
84 TRACE_jvmci_3("relocating (metaspace constant) at " PTR_FORMAT "/" PTR_FORMAT, p2i(pc), p2i(reference)); |
84 TRACE_jvmci_3("relocating (metaspace constant) at " PTR_FORMAT "/" PTR_FORMAT, p2i(pc), p2i(reference)); |
85 } |
85 } |
86 } |
86 } |
87 |
87 |