Mercurial > hg > graal-jvmci-8
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) |