summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@digia.com>2013-11-08 18:19:26 +0100
committerSergio Ahumada <sergio.ahumada@digia.com>2013-11-08 18:19:27 +0100
commitc617e2a25aca6cb95ab9d1a7cc55b363a12e861e (patch)
tree6d6f74338e81973c5f5d11984d822ee450205074 /Source/JavaScriptCore
parent056b920c01121c095b20fa7ee3886c0bfebd3536 (diff)
parent8c7a7606acbb2083c8077cce57054f43744cb1c0 (diff)
downloadqtwebkit-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.cpp14
-rw-r--r--Source/JavaScriptCore/assembler/SH4Assembler.h14
-rw-r--r--Source/JavaScriptCore/bytecode/ArrayProfile.cpp1
-rw-r--r--Source/JavaScriptCore/bytecode/PreciseJumpTargets.cpp1
-rw-r--r--Source/JavaScriptCore/config.h9
-rw-r--r--Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h6
-rw-r--r--Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp2
-rw-r--r--Source/JavaScriptCore/heap/CopyVisitor.cpp1
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter.asm2
-rw-r--r--Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp1
-rw-r--r--Source/JavaScriptCore/runtime/JSCellInlines.h1
-rw-r--r--Source/JavaScriptCore/runtime/StructureInlines.h1
-rw-r--r--Source/JavaScriptCore/runtime/SymbolTable.cpp2
-rw-r--r--Source/JavaScriptCore/tools/CodeProfiling.cpp8
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