# HG changeset patch # User kbarrett # Date 1552403619 14400 # Node ID 085309069d3c41ac471146c4b6fc8bd4f4e054fb # Parent b4f4778cf3d9c86d500a528653098ca5278d7b61 8217576: C1 atomic access handlers use incorrect decorators Summary: Fix decorator defaulting. Reviewed-by: tschatzl, eosterlund diff -r b4f4778cf3d9 -r 085309069d3c src/hotspot/share/c1/c1_LIRGenerator.cpp --- a/src/hotspot/share/c1/c1_LIRGenerator.cpp Tue Mar 12 16:18:31 2019 +0100 +++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp Tue Mar 12 11:13:39 2019 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1653,7 +1653,7 @@ decorators |= ACCESS_READ; decorators |= ACCESS_WRITE; // Atomic operations are SEQ_CST by default - decorators |= ((decorators & MO_DECORATOR_MASK) != 0) ? MO_SEQ_CST : 0; + decorators |= ((decorators & MO_DECORATOR_MASK) == 0) ? MO_SEQ_CST : 0; LIRAccess access(this, decorators, base, offset, type); if (access.is_raw()) { return _barrier_set->BarrierSetC1::atomic_cmpxchg_at(access, cmp_value, new_value); @@ -1667,7 +1667,7 @@ decorators |= ACCESS_READ; decorators |= ACCESS_WRITE; // Atomic operations are SEQ_CST by default - decorators |= ((decorators & MO_DECORATOR_MASK) != 0) ? MO_SEQ_CST : 0; + decorators |= ((decorators & MO_DECORATOR_MASK) == 0) ? MO_SEQ_CST : 0; LIRAccess access(this, decorators, base, offset, type); if (access.is_raw()) { return _barrier_set->BarrierSetC1::atomic_xchg_at(access, value); @@ -1681,7 +1681,7 @@ decorators |= ACCESS_READ; decorators |= ACCESS_WRITE; // Atomic operations are SEQ_CST by default - decorators |= ((decorators & MO_DECORATOR_MASK) != 0) ? MO_SEQ_CST : 0; + decorators |= ((decorators & MO_DECORATOR_MASK) == 0) ? MO_SEQ_CST : 0; LIRAccess access(this, decorators, base, offset, type); if (access.is_raw()) { return _barrier_set->BarrierSetC1::atomic_add_at(access, value);