Commit f87ad674 authored by iposva@chromium.org's avatar iposva@chromium.org

Fix issue http://code.google.com/p/v8/issues/detail?id=166 which I have run

across as well.

TBR=plesner

Review URL: http://codereview.chromium.org/13007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 038c2c6f
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
#ifndef V8_UTILS_H_ #ifndef V8_UTILS_H_
#define V8_UTILS_H_ #define V8_UTILS_H_
#include <stdlib.h>
namespace v8 { namespace internal { namespace v8 { namespace internal {
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
...@@ -508,57 +510,54 @@ static inline void CopyChars(sinkchar* dest, const sourcechar* src, int chars) { ...@@ -508,57 +510,54 @@ static inline void CopyChars(sinkchar* dest, const sourcechar* src, int chars) {
} }
static inline int Load16(const byte* pc) { static inline int Load16(const byte* ptr) {
#ifdef CAN_READ_UNALIGNED #ifdef CAN_READ_UNALIGNED
return *reinterpret_cast<const uint16_t*>(pc); return *reinterpret_cast<const uint16_t*>(ptr);
#else #else
uint32_t word; uint32_t word;
word = pc[1]; word = ptr[1];
word |= pc[0] << 8; word |= ptr[0] << 8;
return word; return word;
#endif #endif
} }
static inline int Load32(const byte* pc) { static inline int Load32(const byte* ptr) {
#ifdef CAN_READ_UNALIGNED #ifdef CAN_READ_UNALIGNED
return *reinterpret_cast<const uint32_t*>(pc); return *reinterpret_cast<const uint32_t*>(ptr);
#else #else
uint32_t word; uint32_t word;
word = pc[3]; word = ptr[3];
word |= pc[2] << 8; word |= ptr[2] << 8;
word |= pc[1] << 16; word |= ptr[1] << 16;
word |= pc[0] << 24; word |= ptr[0] << 24;
return word; return word;
#endif #endif
} }
static inline void Store16(byte* pc, uint16_t value) { static inline void Store16(byte* ptr, uint16_t value) {
#ifdef CAN_READ_UNALIGNED #ifdef CAN_READ_UNALIGNED
*reinterpret_cast<uint16_t*>(pc) = value; *reinterpret_cast<uint16_t*>(ptr) = value;
#else #else
pc[1] = value; ptr[1] = value;
pc[0] = value >> 8; ptr[0] = value >> 8;
#endif #endif
} }
static inline void Store32(byte* pc, uint32_t value) { static inline void Store32(byte* ptr, uint32_t value) {
#ifdef CAN_READ_UNALIGNED #ifdef CAN_READ_UNALIGNED
*reinterpret_cast<uint32_t*>(pc) = value; *reinterpret_cast<uint32_t*>(ptr) = value;
#else #else
pc[3] = value; ptr[3] = value;
pc[2] = value >> 8; ptr[2] = value >> 8;
pc[1] = value >> 16; ptr[1] = value >> 16;
pc[0] = value >> 24; ptr[0] = value >> 24;
#endif #endif
} }
} } // namespace v8::internal } } // namespace v8::internal
#endif // V8_UTILS_H_ #endif // V8_UTILS_H_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment