Diff
Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-07-11 23:59:49 UTC (rev 152581)
@@ -1,3 +1,26 @@
+2013-07-11 Mark Lam <[email protected]>
+
+ Resurrect the CLoop LLINT on the FTL branch.
+ https://bugs.webkit.org/show_bug.cgi?id=118144.
+
+ Reviewed by Mark Hahnenberg.
+
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::jitType):
+ - Fix the CodeBlock jitType to be InterpreterThunk when !ENABLE_JIT.
+ * bytecode/JumpTable.h:
+ (JSC::SimpleJumpTable::clear):
+ * interpreter/StackIterator.cpp:
+ (JSC::StackIterator::Frame::bytecodeOffset):
+ (JSC::StackIterator::Frame::print):
+ * jit/JITCode.cpp:
+ (JSC):
+ * jit/JITExceptions.cpp:
+ (JSC::getExceptionLocation):
+ * llint/LowLevelInterpreter.cpp:
+ * offlineasm/cloop.rb:
+ * runtime/Structure.cpp:
+
2013-07-10 Mark Lam <[email protected]>
Merged from http://svn.webkit.org/repository/webkit/trunk
Modified: branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h 2013-07-11 23:59:49 UTC (rev 152581)
@@ -307,7 +307,7 @@
bool hasOptimizedReplacement();
#else
- JITCode::JITType jitType() const { return JITCode::BaselineJIT; }
+ JITCode::JITType jitType() const { return JITCode::InterpreterThunk; }
#endif
ScriptExecutable* ownerExecutable() const { return m_ownerExecutable.get(); }
Modified: branches/dfgFourthTier/Source/_javascript_Core/bytecode/JumpTable.h (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/bytecode/JumpTable.h 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/bytecode/JumpTable.h 2013-07-11 23:59:49 UTC (rev 152581)
@@ -105,7 +105,9 @@
void clear()
{
branchOffsets.clear();
+#if ENABLE(JIT)
ctiOffsets.clear();
+#endif
}
};
Modified: branches/dfgFourthTier/Source/_javascript_Core/interpreter/StackIterator.cpp (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/interpreter/StackIterator.cpp 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/interpreter/StackIterator.cpp 2013-07-11 23:59:49 UTC (rev 152581)
@@ -147,8 +147,10 @@
{
if (!isJSFrame())
return 0;
+#if ENABLE(DFG_JIT)
if (hasLocationAsCodeOriginIndex())
return bytecodeOffsetFromCodeOriginIndex();
+#endif
return locationAsBytecodeOffset();
}
@@ -364,18 +366,22 @@
if (hasLocationAsBytecodeOffset()) {
unsigned bytecodeOffset = locationAsBytecodeOffset();
printif(i, " bytecodeOffset %u %p / %zu\n", bytecodeOffset, reinterpret_cast<void*>(bytecodeOffset), codeBlock->instructions().size());
+#if ENABLE(DFG_JIT)
} else {
unsigned codeOriginIndex = locationAsCodeOriginIndex();
printif(i, " codeOriginIdex %u %p / %zu\n", codeOriginIndex, reinterpret_cast<void*>(codeOriginIndex), codeBlock->codeOrigins().size());
+#endif
}
printif(i, " line %d\n", line());
printif(i, " column %d\n", column());
printif(i, " jitType %d <%s> isOptimizingJIT %d\n", jitType, jitTypeName(jitType), JITCode::isOptimizingJIT(jitType));
+#if ENABLE(DFG_JIT)
printif(i, " hasCodeOrigins %d\n", codeBlock->hasCodeOrigins());
if (codeBlock->hasCodeOrigins()) {
JITCode* jitCode = codeBlock->jitCode().get();
printif(i, " jitCode %p start %p end %p\n", jitCode, jitCode->start(), jitCode->end());
}
+#endif
}
printif(i, "}\n");
}
Modified: branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.cpp (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.cpp 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.cpp 2013-07-11 23:59:49 UTC (rev 152581)
@@ -40,11 +40,13 @@
{
}
+#if ENABLE(JIT)
JSValue JITCode::execute(JSStack* stack, CallFrame* callFrame, VM* vm)
{
JSValue result = JSValue::decode(ctiTrampoline(executableAddress(), stack, callFrame, 0, 0, vm));
return vm->exception ? jsNull() : result;
}
+#endif
DFG::CommonData* JITCode::dfgCommon()
{
Modified: branches/dfgFourthTier/Source/_javascript_Core/jit/JITExceptions.cpp (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/jit/JITExceptions.cpp 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/jit/JITExceptions.cpp 2013-07-11 23:59:49 UTC (rev 152581)
@@ -43,8 +43,10 @@
UNUSED_PARAM(vm);
ASSERT(!callFrame->hasHostCallFrameFlag());
+#if ENABLE(DFG_JIT)
if (callFrame->hasLocationAsCodeOriginIndex())
return callFrame->bytecodeOffsetFromCodeOriginIndex();
+#endif
return callFrame->locationAsBytecodeOffset();
}
Modified: branches/dfgFourthTier/Source/_javascript_Core/llint/LowLevelInterpreter.cpp (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/llint/LowLevelInterpreter.cpp 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/llint/LowLevelInterpreter.cpp 2013-07-11 23:59:49 UTC (rev 152581)
@@ -33,10 +33,10 @@
#if ENABLE(LLINT_C_LOOP)
#include "CodeBlock.h"
+#include "CommonSlowPaths.h"
#include "LLIntCLoop.h"
#include "LLIntSlowPaths.h"
#include "Operations.h"
-#include "SlowPaths.h"
#include "VMInspector.h"
#include <wtf/Assertions.h>
#include <wtf/MathExtras.h>
Modified: branches/dfgFourthTier/Source/_javascript_Core/offlineasm/cloop.rb (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/offlineasm/cloop.rb 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/offlineasm/cloop.rb 2013-07-11 23:59:49 UTC (rev 152581)
@@ -546,7 +546,7 @@
$asm.putc " ExecState* exec = CAST<ExecState*>(#{operands[1].clValue(:voidPtr)});"
$asm.putc " Instruction* pc = CAST<Instruction*>(#{operands[2].clValue(:voidPtr)});"
$asm.putc " SlowPathReturnType result = #{operands[0].cLabel}(exec, pc);"
- $asm.putc " LLInt::decodeResult(result, t0.instruction, t1.execState);"
+ $asm.putc " decodeResult(result, t0.instruction, t1.execState);"
$asm.putc "}"
end
Modified: branches/dfgFourthTier/Source/_javascript_Core/runtime/Structure.cpp (152580 => 152581)
--- branches/dfgFourthTier/Source/_javascript_Core/runtime/Structure.cpp 2013-07-11 23:53:40 UTC (rev 152580)
+++ branches/dfgFourthTier/Source/_javascript_Core/runtime/Structure.cpp 2013-07-11 23:59:49 UTC (rev 152581)
@@ -33,6 +33,7 @@
#include "PropertyNameArray.h"
#include "StructureChain.h"
#include "StructureRareDataInlines.h"
+#include <wtf/CommaPrinter.h>
#include <wtf/RefCountedLeakCounter.h>
#include <wtf/RefPtr.h>
#include <wtf/Threading.h>