Title: [227897] trunk/Source/_javascript_Core
Revision
227897
Author
[email protected]
Date
2018-01-31 02:04:57 -0800 (Wed, 31 Jan 2018)

Log Message

clean up pushToSaveImmediateWithoutTouchingRegisters a bit
https://bugs.webkit.org/show_bug.cgi?id=181774

Reviewed by JF Bastien.

This function on ARM64 was considering what to do with the scratch
register. And conditionally invalidated what was in it. This is not
relevant though, since the function always recovers what was in that
register. This patch just switches it to using dataTempRegister
directly and updates the comment to describe why it can do so safely.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::pushToSaveImmediateWithoutTouchingRegisters):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (227896 => 227897)


--- trunk/Source/_javascript_Core/ChangeLog	2018-01-31 09:58:06 UTC (rev 227896)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-01-31 10:04:57 UTC (rev 227897)
@@ -1,3 +1,19 @@
+2018-01-31  Saam Barati  <[email protected]>
+
+        clean up pushToSaveImmediateWithoutTouchingRegisters a bit
+        https://bugs.webkit.org/show_bug.cgi?id=181774
+
+        Reviewed by JF Bastien.
+
+        This function on ARM64 was considering what to do with the scratch
+        register. And conditionally invalidated what was in it. This is not
+        relevant though, since the function always recovers what was in that
+        register. This patch just switches it to using dataTempRegister
+        directly and updates the comment to describe why it can do so safely.
+
+        * assembler/MacroAssemblerARM64.h:
+        (JSC::MacroAssemblerARM64::pushToSaveImmediateWithoutTouchingRegisters):
+
 2018-01-30  Mark Lam  <[email protected]>
 
         Apply poisoning to TypedArray vector pointers.

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (227896 => 227897)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2018-01-31 09:58:06 UTC (rev 227896)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2018-01-31 10:04:57 UTC (rev 227897)
@@ -2203,8 +2203,11 @@
     
     void pushToSaveImmediateWithoutTouchingRegisters(TrustedImm32 imm)
     {
-        // We invalidate any cached values in dataTempRegister if temp register caching is enabled.
-        RegisterID reg = m_allowScratchRegister ? getCachedDataTempRegisterIDAndInvalidate() : dataTempRegister;
+        // We can use any non-hardware reserved register here since we restore its value.
+        // We pick dataTempRegister arbitrarily. We don't need to invalidate it here since
+        // we restore its original value.
+        RegisterID reg = dataTempRegister;
+
         pushPair(reg, reg);
         move(imm, reg);
         store64(reg, stackPointerRegister);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to