Title: [199861] trunk/Source/_javascript_Core
Revision
199861
Author
fpi...@apple.com
Date
2016-04-21 18:25:50 -0700 (Thu, 21 Apr 2016)

Log Message

JSC virtual call thunk shouldn't do a structure->classInfo lookup
https://bugs.webkit.org/show_bug.cgi?id=156874

Reviewed by Keith Miller.
        
This lookup was unnecessary because we can just test the inlined type field.

But also, this meant that we were exempting JSBoundFunction from the virtual call optimization.
That's pretty bad.

* jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (199860 => 199861)


--- trunk/Source/_javascript_Core/ChangeLog	2016-04-22 01:23:00 UTC (rev 199860)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-04-22 01:25:50 UTC (rev 199861)
@@ -1,3 +1,18 @@
+2016-04-21  Filip Pizlo  <fpi...@apple.com>
+
+        JSC virtual call thunk shouldn't do a structure->classInfo lookup
+        https://bugs.webkit.org/show_bug.cgi?id=156874
+
+        Reviewed by Keith Miller.
+        
+        This lookup was unnecessary because we can just test the inlined type field.
+
+        But also, this meant that we were exempting JSBoundFunction from the virtual call optimization.
+        That's pretty bad.
+
+        * jit/ThunkGenerators.cpp:
+        (JSC::virtualThunkFor):
+
 2016-04-21  Joseph Pecoraro  <pecor...@apple.com>
 
         Web Inspector: sourceMappingURL not loaded in generated script

Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (199860 => 199861)


--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2016-04-22 01:23:00 UTC (rev 199860)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2016-04-22 01:25:50 UTC (rev 199861)
@@ -189,12 +189,7 @@
             CCallHelpers::NotEqual, GPRInfo::regT1,
             CCallHelpers::TrustedImm32(JSValue::CellTag)));
 #endif
-    jit.emitLoadStructure(GPRInfo::regT0, GPRInfo::regT4, GPRInfo::regT1);
-    slowCase.append(
-        jit.branchPtr(
-            CCallHelpers::NotEqual,
-            CCallHelpers::Address(GPRInfo::regT4, Structure::classInfoOffset()),
-            CCallHelpers::TrustedImmPtr(JSFunction::info())));
+    slowCase.append(jit.branchIfNotType(GPRInfo::regT0, JSFunctionType));
     
     // Now we know we have a JSFunction.
     
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to