comparison src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @ 998:a0107ba3bc53

6887186: G1: Incorrect code generated for G1 pre-barrier by C1 on SPARC Summary: Modify operand passed to C1 pre-barrier to be the operand representing the address of the object field that is being stored. Reviewed-by: never
author johnc
date Thu, 01 Oct 2009 15:56:19 -0700
parents cdb8b7c37ac1
children 708275a44e4a
comparison
equal deleted inserted replaced
981:1af62b6ca0f9 998:a0107ba3bc53
666 val.load_item(); 666 val.load_item();
667 667
668 __ add(obj.result(), offset.result(), addr); 668 __ add(obj.result(), offset.result(), addr);
669 669
670 if (type == objectType) { // Write-barrier needed for Object fields. 670 if (type == objectType) { // Write-barrier needed for Object fields.
671 pre_barrier(obj.result(), false, NULL); 671 pre_barrier(addr, false, NULL);
672 } 672 }
673 673
674 if (type == objectType) 674 if (type == objectType)
675 __ cas_obj(addr, cmp.result(), val.result(), t1, t2); 675 __ cas_obj(addr, cmp.result(), val.result(), t1, t2);
676 else if (type == intType) 676 else if (type == intType)