diff src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @ 1848:c393f046f4c5

6991512: G1 barriers fail with 64bit C1 Summary: Fix compare-and-swap intrinsic problem with G1 post-barriers and issue with branch ranges in G1 stubs on sparc Reviewed-by: never, kvn
author iveresov
date Tue, 12 Oct 2010 23:51:20 -0700
parents f02a8bbe6ed4
children 07a218de38cb
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp	Tue Oct 12 02:21:06 2010 -0700
+++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp	Tue Oct 12 23:51:20 2010 -0700
@@ -765,7 +765,7 @@
     ShouldNotReachHere();
   }
 
-  LIR_Opr addr = new_pointer_register();
+  LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
   LIR_Address* a;
   if(offset.result()->is_constant()) {
     a = new LIR_Address(obj.result(),