mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
6992477: fix for 6991512 broke sparc barriers
Reviewed-by: kvn, iveresov
This commit is contained in:
parent
ec8fa4caa2
commit
e4f08bc195
4 changed files with 3 additions and 4 deletions
|
@ -664,7 +664,7 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
|||
// Use temps to avoid kills
|
||||
LIR_Opr t1 = FrameMap::G1_opr;
|
||||
LIR_Opr t2 = FrameMap::G3_opr;
|
||||
LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
|
||||
LIR_Opr addr = new_pointer_register();
|
||||
|
||||
// get address of field
|
||||
obj.load_item();
|
||||
|
|
|
@ -499,7 +499,7 @@ void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
|
|||
Register new_val_reg = new_val()->as_register();
|
||||
__ cmpptr(new_val_reg, (int32_t) NULL_WORD);
|
||||
__ jcc(Assembler::equal, _continuation);
|
||||
ce->store_parameter(addr()->as_register(), 0);
|
||||
ce->store_parameter(addr()->as_pointer_register(), 0);
|
||||
__ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_post_barrier_slow_id)));
|
||||
__ jmp(_continuation);
|
||||
}
|
||||
|
|
|
@ -765,7 +765,7 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
|||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
|
||||
LIR_Opr addr = new_pointer_register();
|
||||
LIR_Address* a;
|
||||
if(offset.result()->is_constant()) {
|
||||
a = new LIR_Address(obj.result(),
|
||||
|
|
|
@ -1350,7 +1350,6 @@ void LIRGenerator::G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_Opr
|
|||
addr = ptr;
|
||||
}
|
||||
assert(addr->is_register(), "must be a register at this point");
|
||||
assert(addr->type() == T_OBJECT, "addr should point to an object");
|
||||
|
||||
LIR_Opr xor_res = new_pointer_register();
|
||||
LIR_Opr xor_shift_res = new_pointer_register();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue