Title: [93915] trunk/Source/_javascript_Core
Revision
93915
Author
[email protected]
Date
2011-08-26 14:46:00 -0700 (Fri, 26 Aug 2011)

Log Message

Update topCallFrame when calling host functions in the JIT
https://bugs.webkit.org/show_bug.cgi?id=67010

Patch by Juan C. Montemayor <[email protected]> on 2011-08-26
Reviewed by Oliver Hunt.

The topCallFrame is not being updated when a host function is
called by the JIT. This causes problems when trying to create a
stack trace (https://bugs.webkit.org/show_bug.cgi?id=66994).

* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (93914 => 93915)


--- trunk/Source/_javascript_Core/ChangeLog	2011-08-26 21:41:15 UTC (rev 93914)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-08-26 21:46:00 UTC (rev 93915)
@@ -1,3 +1,18 @@
+2011-08-26  Juan C. Montemayor  <[email protected]>
+
+        Update topCallFrame when calling host functions in the JIT
+        https://bugs.webkit.org/show_bug.cgi?id=67010
+
+        Reviewed by Oliver Hunt.
+        
+        The topCallFrame is not being updated when a host function is
+        called by the JIT. This causes problems when trying to create a
+        stack trace (https://bugs.webkit.org/show_bug.cgi?id=66994).
+
+        * jit/JITOpcodes.cpp:
+        (JSC::JIT::privateCompileCTIMachineTrampolines):
+        (JSC::JIT::privateCompileCTINativeCall):
+
 2011-08-26  Alexey Proskuryakov  <[email protected]>
 
         Get rid of frame life support timer

Modified: trunk/Source/_javascript_Core/jit/JITOpcodes.cpp (93914 => 93915)


--- trunk/Source/_javascript_Core/jit/JITOpcodes.cpp	2011-08-26 21:41:15 UTC (rev 93914)
+++ trunk/Source/_javascript_Core/jit/JITOpcodes.cpp	2011-08-26 21:46:00 UTC (rev 93915)
@@ -140,6 +140,7 @@
     move(TrustedImmPtr(&globalData->exceptionLocation), regT2);
     storePtr(regT1, regT2);
     poke(callFrameRegister, 1 + OBJECT_OFFSETOF(struct JITStackFrame, callFrame) / sizeof(void*));
+    storePtr(callFrameRegister, &m_globalData->topCallFrame);
     poke(TrustedImmPtr(FunctionPtr(ctiVMThrowTrampoline).value()));
     ret();
 
@@ -280,6 +281,7 @@
     storePtr(regT1, regT2);
     poke(callFrameRegister, OBJECT_OFFSETOF(struct JITStackFrame, callFrame) / sizeof(void*));
 
+    storePtr(callFrameRegister, &m_globalData->topCallFrame);
     // Set the return address.
     move(TrustedImmPtr(FunctionPtr(ctiVMThrowTrampoline).value()), regT1);
     restoreReturnAddressBeforeReturn(regT1);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to