Title: [161356] trunk/Source/_javascript_Core
Revision
161356
Author
[email protected]
Date
2014-01-06 11:20:41 -0800 (Mon, 06 Jan 2014)

Log Message

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:

Modified Paths

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.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to