提交 c730fc7e 编写于 作者: J johnc

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
上级 f75e974a
...@@ -668,7 +668,7 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) { ...@@ -668,7 +668,7 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
__ add(obj.result(), offset.result(), addr); __ add(obj.result(), offset.result(), addr);
if (type == objectType) { // Write-barrier needed for Object fields. if (type == objectType) { // Write-barrier needed for Object fields.
pre_barrier(obj.result(), false, NULL); pre_barrier(addr, false, NULL);
} }
if (type == objectType) if (type == objectType)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册