Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDK-8300783: Consolidate byteswap implementations #12114

Closed
wants to merge 24 commits into from
Closed
Changes from 2 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/hotspot/cpu/aarch64/bytes_aarch64.hpp
Original file line number Diff line number Diff line change
@@ -45,13 +45,13 @@ class Bytes: AllStatic {
// Efficient reading and writing of unaligned unsigned data in Java
// byte ordering (i.e. big-endian ordering). Byte-order reversal is
// needed since x86 CPUs use little-endian format.
static inline u2 get_Java_u2(address p) { return byteswap<u2>(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap<u4>(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap<u8>(get_native_u8(p)); }
static inline u2 get_Java_u2(address p) { return byteswap(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap(get_native_u8(p)); }

static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap<u2>(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap<u4>(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap<u8>(x)); }
static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap(x)); }
};

#endif // CPU_AARCH64_BYTES_AARCH64_HPP
12 changes: 6 additions & 6 deletions src/hotspot/cpu/ppc/bytes_ppc.hpp
Original file line number Diff line number Diff line change
@@ -137,13 +137,13 @@ class Bytes: AllStatic {

// Efficient reading and writing of unaligned unsigned data in Java byte ordering (i.e. big-endian ordering)
// (no byte-order reversal is needed since Power CPUs are big-endian oriented).
static inline u2 get_Java_u2(address p) { return byteswap<u2>(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap<u4>(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap<u8>(get_native_u8(p)); }
static inline u2 get_Java_u2(address p) { return byteswap(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap(get_native_u8(p)); }

static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap<u2>(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap<u4>(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap<u8>(x)); }
static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap(x)); }

#else // !defined(VM_LITTLE_ENDIAN)

8 changes: 4 additions & 4 deletions src/hotspot/cpu/ppc/stubRoutines_ppc_64.cpp
Original file line number Diff line number Diff line change
@@ -107,10 +107,10 @@ address StubRoutines::ppc::generate_crc_constants(juint reverse_poly) {
c = fold_byte(b, reverse_poly),
d = fold_byte(c, reverse_poly);
#ifndef VM_LITTLE_ENDIAN
a = byteswap<juint>(a);
b = byteswap<juint>(b);
c = byteswap<juint>(c);
d = byteswap<juint>(d);
a = byteswap(a);
b = byteswap(b);
c = byteswap(c);
d = byteswap(d);
#endif
ptr[i ] = a;
ptr[i + 256] = b;
12 changes: 6 additions & 6 deletions src/hotspot/cpu/riscv/bytes_riscv.hpp
Original file line number Diff line number Diff line change
@@ -155,13 +155,13 @@ class Bytes: AllStatic {
#endif

// Efficient reading and writing of unaligned unsigned data in Java byte ordering (i.e. big-endian ordering)
static inline u2 get_Java_u2(address p) { return byteswap<u2>(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap<u4>(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap<u8>(get_native_u8(p)); }
static inline u2 get_Java_u2(address p) { return byteswap(get_native_u2(p)); }
static inline u4 get_Java_u4(address p) { return byteswap(get_native_u4(p)); }
static inline u8 get_Java_u8(address p) { return byteswap(get_native_u8(p)); }

static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap<u2>(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap<u4>(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap<u8>(x)); }
static inline void put_Java_u2(address p, u2 x) { put_native_u2(p, byteswap(x)); }
static inline void put_Java_u4(address p, u4 x) { put_native_u4(p, byteswap(x)); }
static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, byteswap(x)); }
};

#endif // CPU_RISCV_BYTES_RISCV_HPP
4 changes: 2 additions & 2 deletions src/hotspot/cpu/x86/bytes_x86.hpp
Original file line number Diff line number Diff line change
@@ -74,7 +74,7 @@ class Bytes: AllStatic {
T x = get_native<T>(p);

if (Endian::is_Java_byte_ordering_different()) {
x = byteswap<T>(x);
x = byteswap(x);
}

return x;
@@ -83,7 +83,7 @@ class Bytes: AllStatic {
template <typename T>
static inline void put_Java(address p, T x) {
if (Endian::is_Java_byte_ordering_different()) {
x = byteswap<T>(x);
x = byteswap(x);
}

put_native<T>(p, x);
2 changes: 1 addition & 1 deletion src/hotspot/share/code/compressedStream.cpp
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@
#include "precompiled.hpp"
#include "code/compressedStream.hpp"
#include "utilities/ostream.hpp"
#include "utilities/moveBits.hpp"
#include "utilities/reverse_bits.hpp"

jint CompressedReadStream::read_signed_int() {
return UNSIGNED5::decode_sign(read_int());
2 changes: 1 addition & 1 deletion src/hotspot/share/opto/subnode.cpp
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@
#include "opto/phaseX.hpp"
#include "opto/subnode.hpp"
#include "runtime/sharedRuntime.hpp"
#include "utilities/moveBits.hpp"
#include "utilities/reverse_bits.hpp"

// Portions of code courtesy of Clifford Click

Loading