< prev index next >

src/share/vm/utilities/copy.hpp

Print this page
@  rev 12742 : imported patch alpinefixes-copyswapaligned
|

*** 227,244 **** *to-- = *from--; } } /** * Copy and *unconditionally* byte swap elements * * @param src address of source * @param dst address of destination * @param byte_count number of bytes to copy * @param elem_size size of the elements to copy-swap */ ! static void conjoint_swap(address src, address dst, size_t byte_count, size_t elem_size); // Fill methods // Fill word-aligned words, not atomic on each word // set_words --- 227,271 ---- *to-- = *from--; } } /** + * Copy elements + * + * @param src address of source + * @param dst address of destination + * @param byte_count number of bytes to copy + * @param elem_size size of the elements to copy-swap + */ + static void conjoint_copy(const void* src, void* dst, size_t byte_count, size_t elem_size); + + /** * Copy and *unconditionally* byte swap elements * * @param src address of source * @param dst address of destination * @param byte_count number of bytes to copy * @param elem_size size of the elements to copy-swap */ ! static void conjoint_swap(const void* src, void* dst, size_t byte_count, size_t elem_size); ! ! /** ! * Copy and byte swap elements from the specified endian to the native (cpu) endian if needed (if they differ) ! * ! * @param src address of source ! * @param dst address of destination ! * @param byte_count number of bytes to copy ! * @param elem_size size of the elements to copy-swap ! */ ! template <Endian::Order endian> ! static void conjoint_swap_maybe(const void* src, void* dst, size_t byte_count, size_t elem_size) { ! if (Endian::NATIVE != endian) { ! conjoint_swap(src, dst, byte_count, elem_size); ! } else { ! conjoint_copy(src, dst, byte_count, elem_size); ! } ! } // Fill methods // Fill word-aligned words, not atomic on each word // set_words
< prev index next >