8186855: Multiple platforms broken after 8186476: Generalize Atomic::add with templates
Reviewed-by: stuefe, coleenp
--- a/hotspot/src/os_cpu/aix_ppc/vm/atomic_aix_ppc.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/aix_ppc/vm/atomic_aix_ppc.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -106,8 +106,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
D result;
@@ -129,8 +129,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
D result;
--- a/hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -184,8 +184,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
#ifdef ARM
return add_using_helper<int>(arm_add_and_fetch, add_value, dest);
@@ -201,8 +201,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
return __sync_add_and_fetch(dest, add_value);
}
@@ -283,7 +283,7 @@
T volatile* dest,
T compare_value,
cmpxchg_memory_order order) const {
- STATIC_CAST(4 == sizeof(T));
+ STATIC_ASSERT(4 == sizeof(T));
#ifdef ARM
return cmpxchg_using_helper<int>(arm_compare_and_swap, exchange_value, dest, compare_value);
#else
@@ -301,7 +301,7 @@
T volatile* dest,
T compare_value,
cmpxchg_memory_order order) const {
- STATIC_CAST(8 == sizeof(T));
+ STATIC_ASSERT(8 == sizeof(T));
return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
}
--- a/hotspot/src/os_cpu/linux_ppc/vm/atomic_linux_ppc.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/linux_ppc/vm/atomic_linux_ppc.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -104,8 +104,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
D result;
@@ -127,8 +127,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
D result;
--- a/hotspot/src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -92,9 +92,9 @@
template<>
template<typename I, typename D>
-inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+inline D Atomic::PlatformAdd<4>::add_and_fetch(I inc, D volatile* dest) const {
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
D old, upd;
@@ -143,9 +143,9 @@
template<>
template<typename I, typename D>
-inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+inline D Atomic::PlatformAdd<8>::add_and_fetch(I inc, D volatile* dest) const {
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
D old, upd;
--- a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -62,8 +62,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
D rv;
__asm__ volatile(
@@ -81,10 +81,11 @@
return rv;
}
+template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
D rv;
__asm__ volatile(
--- a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp Tue Aug 29 10:41:51 2017 +0000
+++ b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp Tue Aug 29 18:34:32 2017 +0200
@@ -178,8 +178,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<4>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(4 == sizeof(I));
- STATIC_CAST(4 == sizeof(D));
+ STATIC_ASSERT(4 == sizeof(I));
+ STATIC_ASSERT(4 == sizeof(D));
#ifdef ARM
return add_using_helper<int>(arm_add_and_fetch, add_value, dest);
@@ -195,8 +195,8 @@
template<>
template<typename I, typename D>
inline D Atomic::PlatformAdd<8>::add_and_fetch(I add_value, D volatile* dest) const {
- STATIC_CAST(8 == sizeof(I));
- STATIC_CAST(8 == sizeof(D));
+ STATIC_ASSERT(8 == sizeof(I));
+ STATIC_ASSERT(8 == sizeof(D));
return __sync_add_and_fetch(dest, add_value);
}