Title: [264369] trunk/Source/_javascript_Core
Revision
264369
Author
[email protected]
Date
2020-07-14 12:50:03 -0700 (Tue, 14 Jul 2020)

Log Message

[JSC] fixup LLInt fast path in op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=214311

Reviewed by Tadeu Zagallo.

The LLInt slow path would previously always be taken in op_get_private_name,
due to not comparing the operand field name's JSValue payload with the cached
field name, but the register index itself.

This fixup can't really be verified by tests, as it is primarily a
minor performance improvement.

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (264368 => 264369)


--- trunk/Source/_javascript_Core/ChangeLog	2020-07-14 19:27:34 UTC (rev 264368)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-07-14 19:50:03 UTC (rev 264369)
@@ -1,3 +1,20 @@
+2020-07-14  Caitlin Potter  <[email protected]>
+
+        [JSC] fixup LLInt fast path in op_get_private_name
+        https://bugs.webkit.org/show_bug.cgi?id=214311
+
+        Reviewed by Tadeu Zagallo.
+
+        The LLInt slow path would previously always be taken in op_get_private_name,
+        due to not comparing the operand field name's JSValue payload with the cached
+        field name, but the register index itself.
+
+        This fixup can't really be verified by tests, as it is primarily a
+        minor performance improvement.
+
+        * llint/LowLevelInterpreter32_64.asm:
+        * llint/LowLevelInterpreter64.asm:
+
 2020-07-14  Xan Lopez  <[email protected]>
 
         [JSC] Remove compiler warning in JSBigInt

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (264368 => 264369)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2020-07-14 19:27:34 UTC (rev 264368)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2020-07-14 19:50:03 UTC (rev 264369)
@@ -1601,7 +1601,8 @@
     metadata(t5, t0)
 
     # Slow path if the private field is stale
-    get(m_property, t0)
+    get(m_property, t1)
+    loadConstantOrVariablePayloadUnchecked(size, t1, t0)
     loadp OpGetPrivateName::Metadata::m_property[t5], t1
     bpneq t1, t0, .opGetPrivateNameSlow
 

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (264368 => 264369)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2020-07-14 19:27:34 UTC (rev 264368)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2020-07-14 19:50:03 UTC (rev 264369)
@@ -1699,7 +1699,8 @@
     metadata(t2, t0)
 
     # Slow path if the private field is stale
-    get(m_property, t0)
+    get(m_property, t1)
+    loadConstantOrVariable(size, t1, t0)
     loadp OpGetPrivateName::Metadata::m_property[t2], t1
     bpneq t1, t0, .opGetPrivateNameSlow
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to