comparison 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
comparison
equal deleted inserted replaced
1847:a932f331ef90 1848:c393f046f4c5
763 val.load_item_force(FrameMap::long1_opr); 763 val.load_item_force(FrameMap::long1_opr);
764 } else { 764 } else {
765 ShouldNotReachHere(); 765 ShouldNotReachHere();
766 } 766 }
767 767
768 LIR_Opr addr = new_pointer_register(); 768 LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
769 LIR_Address* a; 769 LIR_Address* a;
770 if(offset.result()->is_constant()) { 770 if(offset.result()->is_constant()) {
771 a = new LIR_Address(obj.result(), 771 a = new LIR_Address(obj.result(),
772 NOT_LP64(offset.result()->as_constant_ptr()->as_jint()) LP64_ONLY((int)offset.result()->as_constant_ptr()->as_jlong()), 772 NOT_LP64(offset.result()->as_constant_ptr()->as_jint()) LP64_ONLY((int)offset.result()->as_constant_ptr()->as_jlong()),
773 as_BasicType(type)); 773 as_BasicType(type));