diff -r a09af8ef8e5c -r 4bb58f644e4e src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp --- a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp Thu Apr 26 12:48:35 2018 -0700 +++ b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp Thu Apr 26 20:42:43 2018 +0200 @@ -2978,7 +2978,9 @@ void LIR_Assembler::atomic_op(LIR_Code code, LIR_Opr src, LIR_Opr data, LIR_Opr dest, LIR_Opr tmp) { - const Register Rptr = src->as_pointer_register(), + const LIR_Address *addr = src->as_address_ptr(); + assert(addr->disp() == 0 && addr->index()->is_illegal(), "use leal!"); + const Register Rptr = addr->base()->as_pointer_register(), Rtmp = tmp->as_register(); Register Rco = noreg; if (UseCompressedOops && data->is_oop()) {