6991512: G1 barriers fail with 64bit C1

Fix compare-and-swap intrinsic problem with G1 post-barriers and issue with branch ranges in G1 stubs on sparc

Reviewed-by: never, kvn
This commit is contained in:
Igor Veresov 2010-10-12 23:51:20 -07:00
parent e870866699
commit 28a13e88e7
6 changed files with 23 additions and 8 deletions

View file

@ -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 = new_pointer_register();
LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
// get address of field
obj.load_item();