| Index: src/platform-posix.cc
|
| diff --git a/src/platform-posix.cc b/src/platform-posix.cc
|
| index f76ec4433265df5fc347ec32cdd4a16f864eea4c..5ece279d577a165b5c36a6c2e12e2ba40dabe59f 100644
|
| --- a/src/platform-posix.cc
|
| +++ b/src/platform-posix.cc
|
| @@ -340,7 +340,26 @@ void OS::MemMove(void* dest, const void* src, size_t size) {
|
| (*memmove_function)(dest, src, size);
|
| }
|
|
|
| -#endif // V8_TARGET_ARCH_IA32
|
| +#elif defined(V8_HOST_ARCH_ARM) && defined(V8_HOST_CAN_READ_UNALIGNED)
|
| +void OS::MemCopyUint16Uint8Wrapper(uint16_t* dest,
|
| + const uint8_t* src,
|
| + size_t chars) {
|
| + uint16_t* limit = dest + chars;
|
| + while (dest < limit) {
|
| + *dest++ = static_cast<uint16_t>(*src++);
|
| + }
|
| +}
|
| +
|
| +
|
| +OS::MemCopyUint8Function OS::memcopy_uint8_function = &OS::MemCopyUint8Wrapper;
|
| +OS::MemCopyUint16Uint8Function OS::memcopy_uint16_uint8_function =
|
| + &OS::MemCopyUint16Uint8Wrapper;
|
| +// Defined in codegen-arm.cc.
|
| +OS::MemCopyUint8Function CreateMemCopyUint8Function(
|
| + OS::MemCopyUint8Function stub);
|
| +OS::MemCopyUint16Uint8Function CreateMemCopyUint16Uint8Function(
|
| + OS::MemCopyUint16Uint8Function stub);
|
| +#endif
|
|
|
|
|
| void POSIXPostSetUp() {
|
| @@ -349,6 +368,11 @@ void POSIXPostSetUp() {
|
| if (generated_memmove != NULL) {
|
| memmove_function = generated_memmove;
|
| }
|
| +#elif defined(V8_HOST_ARCH_ARM) && defined(V8_HOST_CAN_READ_UNALIGNED)
|
| + OS::memcopy_uint8_function =
|
| + CreateMemCopyUint8Function(&OS::MemCopyUint8Wrapper);
|
| + OS::memcopy_uint16_uint8_function =
|
| + CreateMemCopyUint16Uint8Function(&OS::MemCopyUint16Uint8Wrapper);
|
| #endif
|
| init_fast_sin_function();
|
| init_fast_cos_function();
|
|
|