Title: [237728] trunk/Source/_javascript_Core
Revision
237728
Author
[email protected]
Date
2018-11-02 03:46:34 -0700 (Fri, 02 Nov 2018)

Log Message

REGRESSION(r237547): Exception handlers should be aware of wide opcodes when JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=191175

Reviewed by Keith Miller.

https://bugs.webkit.org/show_bug.cgi?id=191108 did not handle the case where JIT is not enabled

* jit/JITExceptions.cpp:
(JSC::genericUnwind):
* llint/LLIntData.h:
(JSC::LLInt::getWideCodePtr):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (237727 => 237728)


--- trunk/Source/_javascript_Core/ChangeLog	2018-11-02 10:04:22 UTC (rev 237727)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-11-02 10:46:34 UTC (rev 237728)
@@ -1,3 +1,17 @@
+2018-11-02  Tadeu Zagallo  <[email protected]>
+
+        REGRESSION(r237547): Exception handlers should be aware of wide opcodes when JIT is disabled
+        https://bugs.webkit.org/show_bug.cgi?id=191175
+
+        Reviewed by Keith Miller.
+
+        https://bugs.webkit.org/show_bug.cgi?id=191108 did not handle the case where JIT is not enabled
+
+        * jit/JITExceptions.cpp:
+        (JSC::genericUnwind):
+        * llint/LLIntData.h:
+        (JSC::LLInt::getWideCodePtr):
+
 2018-11-01  Fujii Hironori  <[email protected]>
 
         Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h

Modified: trunk/Source/_javascript_Core/jit/JITExceptions.cpp (237727 => 237728)


--- trunk/Source/_javascript_Core/jit/JITExceptions.cpp	2018-11-02 10:04:22 UTC (rev 237727)
+++ trunk/Source/_javascript_Core/jit/JITExceptions.cpp	2018-11-02 10:46:34 UTC (rev 237728)
@@ -73,7 +73,9 @@
 #if ENABLE(JIT)
         catchRoutine = handler->nativeCode.executableAddress();
 #else
-        catchRoutine = LLInt::getCodePtr(catchPCForInterpreter->opcodeID());
+        catchRoutine = catchPCForInterpreter->isWide()
+            ? LLInt::getWideCodePtr(catchPCForInterpreter->opcodeID())
+            : LLInt::getCodePtr(catchPCForInterpreter->opcodeID());
 #endif
     } else
         catchRoutine = LLInt::getCodePtr<ExceptionHandlerPtrTag>(handleUncaughtException).executableAddress();

Modified: trunk/Source/_javascript_Core/llint/LLIntData.h (237727 => 237728)


--- trunk/Source/_javascript_Core/llint/LLIntData.h	2018-11-02 10:04:22 UTC (rev 237727)
+++ trunk/Source/_javascript_Core/llint/LLIntData.h	2018-11-02 10:46:34 UTC (rev 237728)
@@ -140,6 +140,11 @@
 {
     return reinterpret_cast<void*>(getOpcode(id));
 }
+
+ALWAYS_INLINE void* getWideCodePtr(OpcodeID id)
+{
+    return reinterpret_cast<void*>(getOpcodeWide(id));
+}
 #endif
 
 ALWAYS_INLINE void* getCodePtr(JSC::EncodedJSValue glueHelper())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to