src/share/vm/utilities/copy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/utilities/copy.cpp Fri Feb 5 13:28:06 2016
--- new/src/share/vm/utilities/copy.cpp Fri Feb 5 13:28:06 2016
*** 86,110 ****
--- 86,106 ----
*/
static uint32_t byte_swap(uint32_t x) {
uint16_t lo = (uint16_t)x;
uint16_t hi = (uint16_t)(x >> 16);
! return ((uint32_t)byte_swap(lo) << 16) | (uint32_t)byte_swap(hi);
((uint32_t)byte_swap(lo) << 16) |
((uint32_t)byte_swap(hi));
}
/**
* Byte swap a 64-bit value
*/
static uint64_t byte_swap(uint64_t x) {
uint32_t lo = (uint32_t)x;
uint32_t hi = (uint32_t)(x >> 32);
! return ((uint64_t)byte_swap(lo) << 32) | (uint64_t)byte_swap(hi);
((uint64_t)byte_swap(lo) << 32) |
((uint64_t)byte_swap(hi));
}
enum CopyDirection {
RIGHT, // lower -> higher address
LEFT // higher -> lower address
*** 120,130 ****
--- 116,126 ----
*
* @param src address of source
* @param dst address of destination
* @param byte_count number of bytes to copy
*/
! template <typename T, CopyDirection D, bool is_src_aligned, bool is_dst_aligned>
static void do_conjoint_swap(address src, address dst, size_t byte_count) {
address cur_src, cur_dst;
switch (D) {
case RIGHT:
src/share/vm/utilities/copy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File