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 @@
#ifndef V8_UTILS_H_
#define V8_UTILS_H_
#include <stdlib.h>
namespace v8 { namespace internal {
// ----------------------------------------------------------------------------
......@@ -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
return *reinterpret_cast<const uint16_t*>(pc);
return *reinterpret_cast<const uint16_t*>(ptr);
#else
uint32_t word;
word = pc[1];
word |= pc[0] << 8;
word = ptr[1];
word |= ptr[0] << 8;
return word;
#endif
}
static inline int Load32(const byte* pc) {
static inline int Load32(const byte* ptr) {
#ifdef CAN_READ_UNALIGNED
return *reinterpret_cast<const uint32_t*>(pc);
return *reinterpret_cast<const uint32_t*>(ptr);
#else
uint32_t word;
word = pc[3];
word |= pc[2] << 8;
word |= pc[1] << 16;
word |= pc[0] << 24;
word = ptr[3];
word |= ptr[2] << 8;
word |= ptr[1] << 16;
word |= ptr[0] << 24;
return word;
#endif
}
static inline void Store16(byte* pc, uint16_t value) {
static inline void Store16(byte* ptr, uint16_t value) {
#ifdef CAN_READ_UNALIGNED
*reinterpret_cast<uint16_t*>(pc) = value;
*reinterpret_cast<uint16_t*>(ptr) = value;
#else
pc[1] = value;
pc[0] = value >> 8;
ptr[1] = value;
ptr[0] = value >> 8;
#endif
}
static inline void Store32(byte* pc, uint32_t value) {
static inline void Store32(byte* ptr, uint32_t value) {
#ifdef CAN_READ_UNALIGNED
*reinterpret_cast<uint32_t*>(pc) = value;
*reinterpret_cast<uint32_t*>(ptr) = value;
#else
pc[3] = value;
pc[2] = value >> 8;
pc[1] = value >> 16;
pc[0] = value >> 24;
ptr[3] = value;
ptr[2] = value >> 8;
ptr[1] = value >> 16;
ptr[0] = value >> 24;
#endif
}
} } // namespace v8::internal
#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