diff options
Diffstat (limited to 'Source/JavaScriptCore')
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntData.cpp | 4 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h | 6 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 4 |
3 files changed, 13 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntData.cpp b/Source/JavaScriptCore/llint/LLIntData.cpp index f91da9c0a..f1e367510 100644 --- a/Source/JavaScriptCore/llint/LLIntData.cpp +++ b/Source/JavaScriptCore/llint/LLIntData.cpp @@ -116,7 +116,11 @@ void Data::performAssertions(VM& vm) #if !ASSERT_DISABLED Vector<int> testVector; testVector.resize(42); +#if USE(JSVALUE64) && OS(WINDOWS) + ASSERT(bitwise_cast<uint32_t*>(&testVector)[4] == 42); +#else ASSERT(bitwise_cast<uint32_t*>(&testVector)[sizeof(void*)/sizeof(uint32_t) + 1] == 42); +#endif ASSERT(bitwise_cast<int**>(&testVector)[0] == testVector.begin()); #endif diff --git a/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h b/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h index bad62ddf8..9010757b4 100644 --- a/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h +++ b/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h @@ -104,6 +104,12 @@ #define OFFLINE_ASM_JSVALUE64 0 #endif +#if USE(JSVALUE64) && OS(WINDOWS) +#define OFFLINE_ASM_WIN64 1 +#else +#define OFFLINE_ASM_WIN64 0 +#endif + #if !ASSERT_DISABLED #define OFFLINE_ASM_ASSERT_ENABLED 1 #else diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm index c4d86ee3f..22ba11164 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm @@ -161,7 +161,9 @@ end # This must match wtf/Vector.h const VectorBufferOffset = 0 -if JSVALUE64 +if WIN64 + const VectorSizeOffset = 16 +elsif JSVALUE64 const VectorSizeOffset = 12 else const VectorSizeOffset = 8 |