Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/graphKit.cpp @ 23054:55d07ec5bde4
8036851: volatile double accesses are not explicitly atomic in C2
Summary: The C2 structure is adapted to distinguish between volatile and non-volatile double accesses.
Reviewed-by: twisti, kvn
Contributed-by: Tobias Hartmann <tobias.hartmann@oracle.com>
author | anoll |
---|---|
date | Tue, 06 May 2014 09:17:57 +0200 |
parents | 4eeec0cdeb6a |
children | c1c199dde5c9 |
line wrap: on
line diff
--- a/src/share/vm/opto/graphKit.cpp Tue May 26 11:26:50 2015 -0700 +++ b/src/share/vm/opto/graphKit.cpp Tue May 06 09:17:57 2014 +0200 @@ -1460,6 +1460,8 @@ Node* ld; if (require_atomic_access && bt == T_LONG) { ld = LoadLNode::make_atomic(C, ctl, mem, adr, adr_type, t, mo); + } else if (require_atomic_access && bt == T_DOUBLE) { + ld = LoadDNode::make_atomic(C, ctl, mem, adr, adr_type, t, mo); } else { ld = LoadNode::make(_gvn, ctl, mem, adr, adr_type, t, bt, mo); } @@ -1482,6 +1484,8 @@ Node* st; if (require_atomic_access && bt == T_LONG) { st = StoreLNode::make_atomic(C, ctl, mem, adr, adr_type, val, mo); + } else if (require_atomic_access && bt == T_DOUBLE) { + st = StoreDNode::make_atomic(C, ctl, mem, adr, adr_type, val, mo); } else { st = StoreNode::make(_gvn, ctl, mem, adr, adr_type, val, bt, mo); }