< 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 >