< prev index next >

src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp

Print this page
rev 51436 : 8209667: Explicit barriers for C1/LIR

*** 995,1004 **** --- 995,1008 ---- __ convert(Bytecodes::_i2l, index, tmp); index = tmp; } #endif + if (is_updateBytes) { + base_op = access_resolve(IN_HEAP | IS_NOT_NULL | ACCESS_READ, base_op, NULL); + } + LIR_Address* a = new LIR_Address(base_op, index, offset, T_BYTE); BasicTypeList signature(3);
*** 1052,1070 **** LIR_Opr result_aOffset = aOffset.result(); if (result_aOffset->is_constant()) { constant_aOffset = result_aOffset->as_jlong(); result_aOffset = LIR_OprFact::illegalOpr; } ! LIR_Opr result_a = a.result(); long constant_bOffset = 0; LIR_Opr result_bOffset = bOffset.result(); if (result_bOffset->is_constant()) { constant_bOffset = result_bOffset->as_jlong(); result_bOffset = LIR_OprFact::illegalOpr; } ! LIR_Opr result_b = b.result(); #ifndef _LP64 result_a = new_register(T_INT); __ convert(Bytecodes::_l2i, a.result(), result_a); result_b = new_register(T_INT); --- 1056,1074 ---- LIR_Opr result_aOffset = aOffset.result(); if (result_aOffset->is_constant()) { constant_aOffset = result_aOffset->as_jlong(); result_aOffset = LIR_OprFact::illegalOpr; } ! LIR_Opr result_a = access_resolve(IN_HEAP | ACCESS_READ, a.result(), NULL); long constant_bOffset = 0; LIR_Opr result_bOffset = bOffset.result(); if (result_bOffset->is_constant()) { constant_bOffset = result_bOffset->as_jlong(); result_bOffset = LIR_OprFact::illegalOpr; } ! LIR_Opr result_b = access_resolve(IN_HEAP | ACCESS_READ, b.result(), NULL); #ifndef _LP64 result_a = new_register(T_INT); __ convert(Bytecodes::_l2i, a.result(), result_a); result_b = new_register(T_INT);
< prev index next >