5#ifndef V8_BASE_MEMORY_H_
6#define V8_BASE_MEMORY_H_
20 return *
reinterpret_cast<T*
>(addr);
31 memcpy(&
r,
reinterpret_cast<void*
>(p),
sizeof(
V));
43 memcpy(
reinterpret_cast<void*
>(p), &value,
sizeof(
V));
53#if defined(V8_TARGET_LITTLE_ENDIAN)
55#elif defined(V8_TARGET_BIG_ENDIAN)
57 const uint8_t* src =
reinterpret_cast<const uint8_t*
>(p);
58 uint8_t* dst =
reinterpret_cast<uint8_t*
>(&ret);
59 for (
size_t i = 0;
i <
sizeof(
V);
i++) {
60 dst[
i] = src[
sizeof(
V) -
i - 1];
68#if defined(V8_TARGET_LITTLE_ENDIAN)
70#elif defined(V8_TARGET_BIG_ENDIAN)
71 uint8_t* src =
reinterpret_cast<uint8_t*
>(&
value);
72 uint8_t* dst =
reinterpret_cast<uint8_t*
>(p);
73 for (
size_t i = 0;
i <
sizeof(
V);
i++) {
74 dst[
i] = src[
sizeof(
V) -
i - 1];
87 !std::is_array<V>::value,
88 "Passing an array decays to pointer, causing unexpected results.");
static V ReadUnalignedValue(Address p)
static void WriteLittleEndianValue(Address p, V value)
static V ReadLittleEndianValue(Address p)
static void WriteUnalignedValue(Address p, V value)
#define DCHECK(condition)
#define ASSERT_TRIVIALLY_COPYABLE(T)
constexpr bool IsAligned(T value, U alignment)
std::unique_ptr< ValueMirror > value