comparison src/cpu/sparc/vm/c1_LIRGenerator_sparc.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
662 LIRItem val (x->argument_at(3), this); // replace field with val if matches cmp 662 LIRItem val (x->argument_at(3), this); // replace field with val if matches cmp
663 663
664 // Use temps to avoid kills 664 // Use temps to avoid kills
665 LIR_Opr t1 = FrameMap::G1_opr; 665 LIR_Opr t1 = FrameMap::G1_opr;
666 LIR_Opr t2 = FrameMap::G3_opr; 666 LIR_Opr t2 = FrameMap::G3_opr;
667 LIR_Opr addr = new_pointer_register(); 667 LIR_Opr addr = (type == objectType) ? new_register(T_OBJECT) : new_pointer_register();
668 668
669 // get address of field 669 // get address of field
670 obj.load_item(); 670 obj.load_item();
671 offset.load_item(); 671 offset.load_item();
672 cmp.load_item(); 672 cmp.load_item();