equal
deleted
inserted
replaced
2976 return; |
2976 return; |
2977 } |
2977 } |
2978 |
2978 |
2979 |
2979 |
2980 void LIR_Assembler::atomic_op(LIR_Code code, LIR_Opr src, LIR_Opr data, LIR_Opr dest, LIR_Opr tmp) { |
2980 void LIR_Assembler::atomic_op(LIR_Code code, LIR_Opr src, LIR_Opr data, LIR_Opr dest, LIR_Opr tmp) { |
2981 const Register Rptr = src->as_pointer_register(), |
2981 const LIR_Address *addr = src->as_address_ptr(); |
|
2982 assert(addr->disp() == 0 && addr->index()->is_illegal(), "use leal!"); |
|
2983 const Register Rptr = addr->base()->as_pointer_register(), |
2982 Rtmp = tmp->as_register(); |
2984 Rtmp = tmp->as_register(); |
2983 Register Rco = noreg; |
2985 Register Rco = noreg; |
2984 if (UseCompressedOops && data->is_oop()) { |
2986 if (UseCompressedOops && data->is_oop()) { |
2985 Rco = __ encode_heap_oop(Rtmp, data->as_register()); |
2987 Rco = __ encode_heap_oop(Rtmp, data->as_register()); |
2986 } |
2988 } |