# HG changeset patch # User never # Date 1287177671 25200 # Node ID 07a218de38cb5d2358497118c22bd4b1c40187f8 # Parent b98784e85f71a023ae132db0fda9801a5bda0018 6992477: fix for 6991512 broke sparc barriers Reviewed-by: kvn, iveresov diff -r b98784e85f71 -r 07a218de38cb src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp --- a/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Thu Oct 14 10:46:38 2010 -0700 +++ b/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp Fri Oct 15 14:21:11 2010 -0700 @@ -664,7 +664,7 @@ // 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(); diff -r b98784e85f71 -r 07a218de38cb src/cpu/x86/vm/c1_CodeStubs_x86.cpp --- a/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Thu Oct 14 10:46:38 2010 -0700 +++ b/src/cpu/x86/vm/c1_CodeStubs_x86.cpp Fri Oct 15 14:21:11 2010 -0700 @@ -499,7 +499,7 @@ 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); } diff -r b98784e85f71 -r 07a218de38cb src/cpu/x86/vm/c1_LIRGenerator_x86.cpp --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Thu Oct 14 10:46:38 2010 -0700 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Fri Oct 15 14:21:11 2010 -0700 @@ -765,7 +765,7 @@ 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(), diff -r b98784e85f71 -r 07a218de38cb src/share/vm/c1/c1_LIRGenerator.cpp --- a/src/share/vm/c1/c1_LIRGenerator.cpp Thu Oct 14 10:46:38 2010 -0700 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Fri Oct 15 14:21:11 2010 -0700 @@ -1350,7 +1350,6 @@ 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();