Skip to content

Commit

Permalink
8330242: RISC-V: Simplify and remove CORRECT_COMPILER_ATOMIC_SUPPORT …
Browse files Browse the repository at this point in the history
…in atomic_linux_riscv.hpp

Reviewed-by: fyang, rehn
  • Loading branch information
zifeihan authored and RealFYang committed Apr 17, 2024
1 parent e57a322 commit cd4c3aa
Showing 1 changed file with 4 additions and 15 deletions.
19 changes: 4 additions & 15 deletions src/hotspot/os_cpu/linux_riscv/atomic_linux_riscv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<size_t byte_size>
struct Atomic::PlatformAdd {
template<typename D, typename I>
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -192,11 +186,7 @@ inline T Atomic::PlatformCmpxchg<byte_size>::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));
Expand Down Expand Up @@ -235,6 +225,5 @@ struct Atomic::PlatformOrderedStore<byte_size, RELEASE_X_FENCE>
};

#undef FULL_COMPILER_ATOMIC_SUPPORT
#undef CORRECT_COMPILER_ATOMIC_SUPPORT

#endif // OS_CPU_LINUX_RISCV_ATOMIC_LINUX_RISCV_HPP

1 comment on commit cd4c3aa

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.