Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (161355 => 161356)
--- trunk/Source/_javascript_Core/ChangeLog 2014-01-06 19:19:36 UTC (rev 161355)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-01-06 19:20:41 UTC (rev 161356)
@@ -1,5 +1,18 @@
2014-01-06 Filip Pizlo <[email protected]>
+ LLInt shouldn't check for ENABLE(JIT).
+
+ Rubber stamped by Mark Hahnenberg.
+
+ * llint/LLIntCommon.h:
+ * llint/LLIntOfflineAsmConfig.h:
+ * llint/LLIntSlowPaths.cpp:
+ (JSC::LLInt::entryOSR):
+ (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+ * llint/LowLevelInterpreter.asm:
+
+2014-01-06 Filip Pizlo <[email protected]>
+
LLInt shouldnt check for ENABLE(_javascript__DEBUGGER).
Rubber stamped by Mark Hahnenberg.
Modified: trunk/Source/_javascript_Core/llint/LLIntCommon.h (161355 => 161356)
--- trunk/Source/_javascript_Core/llint/LLIntCommon.h 2014-01-06 19:19:36 UTC (rev 161355)
+++ trunk/Source/_javascript_Core/llint/LLIntCommon.h 2014-01-06 19:20:41 UTC (rev 161356)
@@ -43,14 +43,5 @@
// Disable inline caching of get_by_id and put_by_id.
#define LLINT_ALWAYS_ACCESS_SLOW 0
-// Enable OSR into the JIT. Disabling this while the LLInt is enabled effectively
-// turns off all JIT'ing, since in LLInt's parlance, OSR subsumes any form of JIT
-// invocation.
-#if ENABLE(JIT) && !ENABLE(ALLOCATION_LOGGING)
-#define LLINT_OSR_TO_JIT 1
-#else
-#define LLINT_OSR_TO_JIT 0
-#endif
-
#endif // LLIntCommon_h
Modified: trunk/Source/_javascript_Core/llint/LLIntOfflineAsmConfig.h (161355 => 161356)
--- trunk/Source/_javascript_Core/llint/LLIntOfflineAsmConfig.h 2014-01-06 19:19:36 UTC (rev 161355)
+++ trunk/Source/_javascript_Core/llint/LLIntOfflineAsmConfig.h 2014-01-06 19:20:41 UTC (rev 161356)
@@ -136,12 +136,6 @@
#define OFFLINE_ASM_BIG_ENDIAN 0
#endif
-#if LLINT_OSR_TO_JIT
-#define OFFLINE_ASM_JIT_ENABLED 1
-#else
-#define OFFLINE_ASM_JIT_ENABLED 0
-#endif
-
#if LLINT_EXECUTION_TRACING
#define OFFLINE_ASM_EXECUTION_TRACING 1
#else
Modified: trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp (161355 => 161356)
--- trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2014-01-06 19:19:36 UTC (rev 161355)
+++ trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2014-01-06 19:20:41 UTC (rev 161356)
@@ -268,6 +268,8 @@
LLINT_END_IMPL();
}
+enum EntryKind { Prologue, ArityCheck };
+
#if ENABLE(JIT)
inline bool shouldJIT(ExecState* exec)
{
@@ -321,7 +323,6 @@
}
}
-enum EntryKind { Prologue, ArityCheck };
static SlowPathReturnType entryOSR(ExecState* exec, Instruction*, CodeBlock* codeBlock, const char *name, EntryKind kind)
{
if (Options::verboseOSR()) {
@@ -342,6 +343,13 @@
ASSERT(kind == ArityCheck);
LLINT_RETURN_TWO(codeBlock->jitCodeWithArityCheck().executableAddress(), exec);
}
+#else // ENABLE(JIT)
+static SlowPathReturnType entryOSR(ExecState* exec, Instruction*, CodeBlock* codeBlock, const char*, EntryKind)
+{
+ codeBlock->dontJITAnytimeSoon();
+ LLINT_RETURN_TWO(0, exec);
+}
+#endif // ENABLE(JIT)
LLINT_SLOW_PATH_DECL(entry_osr)
{
@@ -372,6 +380,7 @@
{
CodeBlock* codeBlock = exec->codeBlock();
+#if ENABLE(JIT)
if (Options::verboseOSR()) {
dataLog(
*codeBlock, ": Entered loop_osr with executeCounter = ",
@@ -398,12 +407,17 @@
ASSERT(jumpTarget);
LLINT_RETURN_TWO(jumpTarget, exec);
+#else // ENABLE(JIT)
+ codeBlock->dontJITAnytimeSoon();
+ LLINT_RETURN_TWO(0, exec);
+#endif // ENABLE(JIT)
}
LLINT_SLOW_PATH_DECL(replace)
{
CodeBlock* codeBlock = exec->codeBlock();
+#if ENABLE(JIT)
if (Options::verboseOSR()) {
dataLog(
*codeBlock, ": Entered replace with executeCounter = ",
@@ -415,8 +429,11 @@
else
codeBlock->dontJITAnytimeSoon();
LLINT_END_IMPL();
+#else // ENABLE(JIT)
+ codeBlock->dontJITAnytimeSoon();
+ LLINT_END_IMPL();
+#endif // ENABLE(JIT)
}
-#endif // ENABLE(JIT)
LLINT_SLOW_PATH_DECL(stack_check)
{
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm (161355 => 161356)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2014-01-06 19:19:36 UTC (rev 161355)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2014-01-06 19:20:41 UTC (rev 161356)
@@ -266,12 +266,10 @@
end
macro checkSwitchToJIT(increment, action)
- if JIT_ENABLED
- loadp CodeBlock[cfr], t0
- baddis increment, CodeBlock::m_llintExecuteCounter + ExecutionCounter::m_counter[t0], .continue
- action()
+ loadp CodeBlock[cfr], t0
+ baddis increment, CodeBlock::m_llintExecuteCounter + ExecutionCounter::m_counter[t0], .continue
+ action()
.continue:
- end
end
macro checkSwitchToJITForEpilogue()
@@ -321,18 +319,16 @@
callSlowPath(traceSlowPath)
end
codeBlockGetter(t1)
- if JIT_ENABLED
- baddis 5, CodeBlock::m_llintExecuteCounter + ExecutionCounter::m_counter[t1], .continue
- cCall2(osrSlowPath, cfr, PC)
- move t1, cfr
- btpz t0, .recover
- loadp ReturnPC[cfr], t2
- restoreReturnAddressBeforeReturn(t2)
- jmp t0
- .recover:
- codeBlockGetter(t1)
- .continue:
- end
+ baddis 5, CodeBlock::m_llintExecuteCounter + ExecutionCounter::m_counter[t1], .continue
+ cCall2(osrSlowPath, cfr, PC)
+ move t1, cfr
+ btpz t0, .recover
+ loadp ReturnPC[cfr], t2
+ restoreReturnAddressBeforeReturn(t2)
+ jmp t0
+.recover:
+ codeBlockGetter(t1)
+.continue:
codeBlockSetter(t1)
# Set up the PC.