diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-08 18:19:26 +0100 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-08 18:19:27 +0100 |
commit | c617e2a25aca6cb95ab9d1a7cc55b363a12e861e (patch) | |
tree | 6d6f74338e81973c5f5d11984d822ee450205074 /Source/JavaScriptCore | |
parent | 056b920c01121c095b20fa7ee3886c0bfebd3536 (diff) | |
parent | 8c7a7606acbb2083c8077cce57054f43744cb1c0 (diff) | |
download | qtwebkit-c617e2a25aca6cb95ab9d1a7cc55b363a12e861e.tar.gz |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I4e82a7abec9b95d3148e1eddc786ee5a16d1f768
Diffstat (limited to 'Source/JavaScriptCore')
-rw-r--r-- | Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp | 14 | ||||
-rw-r--r-- | Source/JavaScriptCore/assembler/SH4Assembler.h | 14 | ||||
-rw-r--r-- | Source/JavaScriptCore/bytecode/ArrayProfile.cpp | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/config.h | 9 | ||||
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h | 6 | ||||
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/heap/CopyVisitor.cpp | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/runtime/JSCellInlines.h | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/runtime/StructureInlines.h | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/runtime/SymbolTable.cpp | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/tools/CodeProfiling.cpp | 8 |
14 files changed, 35 insertions, 28 deletions
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp index 98dc3e987..a523939b7 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp +++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp @@ -36,7 +36,19 @@ #include <fcntl.h> #include <unistd.h> #include <elf.h> -#include <asm/hwcap.h> +#if !OS(ANDROID) && !PLATFORM(QT) +# include <asm/hwcap.h> +# else +# include <asm/procinfo.h> +typedef struct +{ + uint32_t a_type; + union + { + uint32_t a_val; + } a_un; +} Elf32_auxv_t; +# endif #endif namespace JSC { diff --git a/Source/JavaScriptCore/assembler/SH4Assembler.h b/Source/JavaScriptCore/assembler/SH4Assembler.h index fded7df89..55f974a29 100644 --- a/Source/JavaScriptCore/assembler/SH4Assembler.h +++ b/Source/JavaScriptCore/assembler/SH4Assembler.h @@ -1545,17 +1545,11 @@ public: insn[0] = getOpcodeGroup3(MOVL_READ_OFFPC_OPCODE, SH4Registers::r13, insn[0] & 0x00ff); insn[1] = (insn[1] & 0xf00f) | (rd << 8) | (SH4Registers::r13 << 4); cacheFlush(insn, 2 * sizeof(SH4Word)); - changePCrelativeAddress(insn[0] & 0x00ff, insn, imm); - return; - } - - if ((insn[0] & 0x00ff) == 1) + } else { insn[1] = getOpcodeGroup6(BRA_OPCODE, 3); - else - insn[1] = NOP_OPCODE; - - insn[2] = NOP_OPCODE; - cacheFlush(&insn[1], 2 * sizeof(SH4Word)); + insn[2] = NOP_OPCODE; + cacheFlush(&insn[1], 2 * sizeof(SH4Word)); + } changePCrelativeAddress(insn[0] & 0x00ff, insn, imm); } diff --git a/Source/JavaScriptCore/bytecode/ArrayProfile.cpp b/Source/JavaScriptCore/bytecode/ArrayProfile.cpp index ae3c8f94a..7ea31da10 100644 --- a/Source/JavaScriptCore/bytecode/ArrayProfile.cpp +++ b/Source/JavaScriptCore/bytecode/ArrayProfile.cpp @@ -24,6 +24,7 @@ */ #include "config.h" +#include "JSCellInlines.h" #include "ArrayProfile.h" #include "CodeBlock.h" diff --git a/Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp b/Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp index 0cdf51a98..b789da104 100644 --- a/Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp +++ b/Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp @@ -24,6 +24,7 @@ */ #include "config.h" +#include "JSCellInlines.h" #include "PreciseJumpTargets.h" namespace JSC { diff --git a/Source/JavaScriptCore/config.h b/Source/JavaScriptCore/config.h index 4e1d2b91c..a5df3aa7a 100644 --- a/Source/JavaScriptCore/config.h +++ b/Source/JavaScriptCore/config.h @@ -34,15 +34,6 @@ #endif #if OS(WINDOWS) - -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0502 -#endif - -#ifndef WINVER -#define WINVER 0x0502 -#endif - // If we don't define these, they get defined in windef.h. // We want to use std::min and std::max #define max max diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h index c6fd0d4d6..54f736600 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h @@ -1675,13 +1675,15 @@ public: JITCompiler::Call appendCallWithExceptionCheckSetResult(const FunctionPtr& function, FPRReg result) { JITCompiler::Call call = appendCallWithExceptionCheck(function); - m_jit.moveDouble(result, FPRInfo::argumentFPR0); + if (result != InvalidFPRReg) + m_jit.moveDouble(FPRInfo::argumentFPR0, result); return call; } JITCompiler::Call appendCallSetResult(const FunctionPtr& function, FPRReg result) { JITCompiler::Call call = m_jit.appendCall(function); - m_jit.moveDouble(result, FPRInfo::argumentFPR0); + if (result != InvalidFPRReg) + m_jit.moveDouble(FPRInfo::argumentFPR0, result); return call; } #else diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp index 1d213c6fe..de4ca9674 100644 --- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp +++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp @@ -4399,7 +4399,7 @@ void SpeculativeJIT::compile(Node* node) JITCompiler::Jump isNotCell = m_jit.branch32(JITCompiler::NotEqual, tagGPR, JITCompiler::TrustedImm32(JSValue::CellTag)); if (node->child1().useKind() != UntypedUse) - speculationCheck(BadType, JSValueRegs(tagGPR, payloadGPR), node->child1(), isNotCell); + DFG_TYPE_CHECK(JSValueRegs(tagGPR, payloadGPR), node->child1(), SpecCell, isNotCell); if (!node->child1()->shouldSpeculateObject() || node->child1().useKind() == StringUse) { m_jit.loadPtr(JITCompiler::Address(payloadGPR, JSCell::structureOffset()), tempGPR); diff --git a/Source/JavaScriptCore/heap/CopyVisitor.cpp b/Source/JavaScriptCore/heap/CopyVisitor.cpp index 281d4bd3b..2e2172f76 100644 --- a/Source/JavaScriptCore/heap/CopyVisitor.cpp +++ b/Source/JavaScriptCore/heap/CopyVisitor.cpp @@ -30,6 +30,7 @@ #include "CopyWorkList.h" #include "GCThreadSharedData.h" #include "JSCell.h" +#include "JSCellInlines.h" #include "JSObject.h" #include <wtf/Threading.h> diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm index 85917a512..2b5a23c24 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm @@ -118,7 +118,7 @@ const FunctionCode = 2 const LLIntReturnPC = ArgumentCount + TagOffset # String flags. -const HashFlags8BitBuffer = 32 +const HashFlags8BitBuffer = 64 # Copied from PropertyOffset.h const firstOutOfLineOffset = 100 diff --git a/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp b/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp index 1577ed57a..f4ba3e98c 100644 --- a/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp +++ b/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp @@ -24,6 +24,7 @@ */ #include "config.h" +#include "JSCellInlines.h" #include "FunctionExecutableDump.h" namespace JSC { diff --git a/Source/JavaScriptCore/runtime/JSCellInlines.h b/Source/JavaScriptCore/runtime/JSCellInlines.h index 5312cae35..1b2d13ada 100644 --- a/Source/JavaScriptCore/runtime/JSCellInlines.h +++ b/Source/JavaScriptCore/runtime/JSCellInlines.h @@ -32,6 +32,7 @@ #include "JSObject.h" #include "JSString.h" #include "Structure.h" +#include "StructureInlines.h" namespace JSC { diff --git a/Source/JavaScriptCore/runtime/StructureInlines.h b/Source/JavaScriptCore/runtime/StructureInlines.h index 75ca40dd7..8407ca791 100644 --- a/Source/JavaScriptCore/runtime/StructureInlines.h +++ b/Source/JavaScriptCore/runtime/StructureInlines.h @@ -26,6 +26,7 @@ #ifndef StructureInlines_h #define StructureInlines_h +#include "JSGlobalObject.h" #include "PropertyMapHashTable.h" #include "Structure.h" diff --git a/Source/JavaScriptCore/runtime/SymbolTable.cpp b/Source/JavaScriptCore/runtime/SymbolTable.cpp index 8c5a00b03..f70fb4e5b 100644 --- a/Source/JavaScriptCore/runtime/SymbolTable.cpp +++ b/Source/JavaScriptCore/runtime/SymbolTable.cpp @@ -27,6 +27,8 @@ */ #include "config.h" +#include "JSDestructibleObject.h" +#include "JSCellInlines.h" #include "SymbolTable.h" namespace JSC { diff --git a/Source/JavaScriptCore/tools/CodeProfiling.cpp b/Source/JavaScriptCore/tools/CodeProfiling.cpp index 740595e3e..f545be903 100644 --- a/Source/JavaScriptCore/tools/CodeProfiling.cpp +++ b/Source/JavaScriptCore/tools/CodeProfiling.cpp @@ -48,7 +48,7 @@ WTF::MetaAllocatorTracker* CodeProfiling::s_tracker = 0; #pragma clang diagnostic ignored "-Wmissing-noreturn" #endif -#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86)) +#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86) && !OS(ANDROID)) // Helper function to start & stop the timer. // Presently we're using the wall-clock timer, since this seems to give the best results. static void setProfileTimer(unsigned usec) @@ -73,7 +73,7 @@ static void profilingTimer(int, siginfo_t*, void* uap) CodeProfiling::sample(reinterpret_cast<void*>(context->__ss.__rip), reinterpret_cast<void**>(context->__ss.__rbp)); } -#elif OS(LINUX) && CPU(X86) +#elif OS(LINUX) && CPU(X86) && !OS(ANDROID) static void profilingTimer(int, siginfo_t*, void* uap) { mcontext_t context = static_cast<ucontext_t*>(uap)->uc_mcontext; @@ -143,7 +143,7 @@ void CodeProfiling::begin(const SourceCode& source) if (alreadyProfiling) return; -#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86)) +#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86) && !OS(ANDROID)) // Regsiter a signal handler & itimer. struct sigaction action; action.sa_sigaction = reinterpret_cast<void (*)(int, siginfo_t *, void *)>(profilingTimer); @@ -167,7 +167,7 @@ void CodeProfiling::end() if (s_profileStack) return; -#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86)) +#if (PLATFORM(MAC) && CPU(X86_64)) || (OS(LINUX) && CPU(X86) && !OS(ANDROID)) // Stop profiling setProfileTimer(0); #endif |