2727#define CPU_PPC_BYTES_PPC_HPP
2828
2929#include " memory/allStatic.hpp"
30+ #include " utilities/byteswap.hpp"
3031
3132class Bytes : AllStatic {
3233 public:
@@ -37,11 +38,6 @@ class Bytes: AllStatic {
3738
3839#if defined(VM_LITTLE_ENDIAN)
3940
40- // Forward declarations of the compiler-dependent implementation
41- static inline u2 swap_u2 (u2 x);
42- static inline u4 swap_u4 (u4 x);
43- static inline u8 swap_u8 (u8 x);
44-
4541 static inline u2 get_native_u2 (address p) {
4642 return (intptr_t (p) & 1 ) == 0
4743 ? *(u2*)p
@@ -141,21 +137,16 @@ class Bytes: AllStatic {
141137
142138 // Efficient reading and writing of unaligned unsigned data in Java byte ordering (i.e. big-endian ordering)
143139 // (no byte-order reversal is needed since Power CPUs are big-endian oriented).
144- static inline u2 get_Java_u2 (address p) { return swap_u2 (get_native_u2 (p)); }
145- static inline u4 get_Java_u4 (address p) { return swap_u4 (get_native_u4 (p)); }
146- static inline u8 get_Java_u8 (address p) { return swap_u8 (get_native_u8 (p)); }
140+ static inline u2 get_Java_u2 (address p) { return byteswap (get_native_u2 (p)); }
141+ static inline u4 get_Java_u4 (address p) { return byteswap (get_native_u4 (p)); }
142+ static inline u8 get_Java_u8 (address p) { return byteswap (get_native_u8 (p)); }
147143
148- static inline void put_Java_u2 (address p, u2 x) { put_native_u2 (p, swap_u2 (x)); }
149- static inline void put_Java_u4 (address p, u4 x) { put_native_u4 (p, swap_u4 (x)); }
150- static inline void put_Java_u8 (address p, u8 x) { put_native_u8 (p, swap_u8 (x)); }
144+ static inline void put_Java_u2 (address p, u2 x) { put_native_u2 (p, byteswap (x)); }
145+ static inline void put_Java_u4 (address p, u4 x) { put_native_u4 (p, byteswap (x)); }
146+ static inline void put_Java_u8 (address p, u8 x) { put_native_u8 (p, byteswap (x)); }
151147
152148#else // !defined(VM_LITTLE_ENDIAN)
153149
154- // Thus, a swap between native and Java ordering is always a no-op:
155- static inline u2 swap_u2 (u2 x) { return x; }
156- static inline u4 swap_u4 (u4 x) { return x; }
157- static inline u8 swap_u8 (u8 x) { return x; }
158-
159150 static inline u2 get_native_u2 (address p) {
160151 return (intptr_t (p) & 1 ) == 0
161152 ? *(u2*)p
@@ -266,6 +257,4 @@ class Bytes: AllStatic {
266257#endif // VM_LITTLE_ENDIAN
267258};
268259
269- #include OS_CPU_HEADER(bytes)
270-
271260#endif // CPU_PPC_BYTES_PPC_HPP
0 commit comments