From cd4c3aac63ddab3d3618df09787d6e9311454ff8 Mon Sep 17 00:00:00 2001 From: Gui Cao Date: Wed, 17 Apr 2024 01:34:39 +0000 Subject: [PATCH] 8330242: RISC-V: Simplify and remove CORRECT_COMPILER_ATOMIC_SUPPORT in atomic_linux_riscv.hpp Reviewed-by: fyang, rehn --- .../os_cpu/linux_riscv/atomic_linux_riscv.hpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp b/src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp index 6546adb6ff3..b3e35d6cc10 100644 --- a/src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp +++ b/src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp @@ -35,16 +35,10 @@ #if defined(__clang_major__) #define FULL_COMPILER_ATOMIC_SUPPORT -#elif (__GNUC__ > 13) || ((__GNUC__ == 13) && (__GNUC_MINOR__ >= 2)) +#elif (__GNUC__ > 13) || ((__GNUC__ == 13) && (__GNUC_MINOR__ > 2)) #define FULL_COMPILER_ATOMIC_SUPPORT #endif -#if defined(__clang_major__) -#define CORRECT_COMPILER_ATOMIC_SUPPORT -#elif defined(__GNUC__) && (__riscv_xlen <= 32 || __GNUC__ > 13) -#define CORRECT_COMPILER_ATOMIC_SUPPORT -#endif - template struct Atomic::PlatformAdd { template @@ -120,9 +114,9 @@ inline T Atomic::PlatformCmpxchg<1>::operator()(T volatile* dest __attribute__(( } #endif -#ifndef CORRECT_COMPILER_ATOMIC_SUPPORT +#ifndef FULL_COMPILER_ATOMIC_SUPPORT // The implementation of `__atomic_compare_exchange` lacks sign extensions -// in GCC 13 and lower when using with 32-bit unsigned integers on RV64, +// in GCC 13.2 and lower when using with 32-bit unsigned integers on RV64, // so we should implement it manually. // GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114130. // See also JDK-8326936. @@ -192,11 +186,7 @@ inline T Atomic::PlatformCmpxchg::operator()(T volatile* dest __attri atomic_memory_order order) const { #ifndef FULL_COMPILER_ATOMIC_SUPPORT - STATIC_ASSERT(byte_size >= 4); -#endif - -#ifndef CORRECT_COMPILER_ATOMIC_SUPPORT - STATIC_ASSERT(byte_size != 4); + STATIC_ASSERT(byte_size > 4); #endif STATIC_ASSERT(byte_size == sizeof(T)); @@ -235,6 +225,5 @@ struct Atomic::PlatformOrderedStore }; #undef FULL_COMPILER_ATOMIC_SUPPORT -#undef CORRECT_COMPILER_ATOMIC_SUPPORT #endif // OS_CPU_LINUX_RISCV_ATOMIC_LINUX_RISCV_HPP