--- old/src/cpu/ppc/vm/macroAssembler_ppc.cpp 2017-09-14 21:06:06.182433131 +0300 +++ new/src/cpu/ppc/vm/macroAssembler_ppc.cpp 2017-09-14 21:06:06.095766468 +0300 @@ -155,7 +155,7 @@ assert(is_addis(inst1) && inv_ra_field(inst1) == 29 /* R29 */, "source must be global TOC"); set_imm((int *)inst1_addr, MacroAssembler::largeoffset_si16_si16_hi(offset)); set_imm((int *)inst2_addr, MacroAssembler::largeoffset_si16_si16_lo(offset)); - return (int)((intptr_t)addr - (intptr_t)inst1_addr); + return (int)((intptr_t)inst2_addr - (intptr_t)inst1_addr); } address MacroAssembler::get_address_of_calculate_address_from_global_toc_at(address a, address bound) {