equal
deleted
inserted
replaced
72 } |
72 } |
73 |
73 |
74 void CodeInstaller::pd_patch_DataSectionReference(int pc_offset, int data_offset, TRAPS) { |
74 void CodeInstaller::pd_patch_DataSectionReference(int pc_offset, int data_offset, TRAPS) { |
75 address pc = _instructions->start() + pc_offset; |
75 address pc = _instructions->start() + pc_offset; |
76 NativeInstruction* inst = nativeInstruction_at(pc); |
76 NativeInstruction* inst = nativeInstruction_at(pc); |
77 if (inst->is_adr_aligned()) { |
77 if (inst->is_adr_aligned() || inst->is_ldr_literal()) { |
78 address dest = _constants->start() + data_offset; |
78 address dest = _constants->start() + data_offset; |
79 _instructions->relocate(pc, section_word_Relocation::spec((address) dest, CodeBuffer::SECT_CONSTS)); |
79 _instructions->relocate(pc, section_word_Relocation::spec((address) dest, CodeBuffer::SECT_CONSTS)); |
80 TRACE_jvmci_3("relocating at " PTR_FORMAT " (+%d) with destination at %d", p2i(pc), pc_offset, data_offset); |
80 TRACE_jvmci_3("relocating at " PTR_FORMAT " (+%d) with destination at %d", p2i(pc), pc_offset, data_offset); |
81 } else { |
81 } else { |
82 JVMCI_ERROR("unknown load or move instruction at " PTR_FORMAT, p2i(pc)); |
82 JVMCI_ERROR("unknown load or move instruction at " PTR_FORMAT, p2i(pc)); |