changeset 1798:07a218de38cb

6992477: fix for 6991512 broke sparc barriers Reviewed-by: kvn, iveresov
author never
date Fri, 15 Oct 2010 14:21:11 -0700
parents b98784e85f71
children 75ab0162aa84
files src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp src/cpu/x86/vm/c1_CodeStubs_x86.cpp src/cpu/x86/vm/c1_LIRGenerator_x86.cpp src/share/vm/c1/c1_LIRGenerator.cpp
diffstat 4 files changed, 3 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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();
--- 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);
 }
--- 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(),
--- 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();