Title: [166524] trunk/Source/WebCore
Revision
166524
Author
[email protected]
Date
2014-03-31 14:04:03 -0700 (Mon, 31 Mar 2014)

Log Message

CSS JIT: clean up the functions ending when generating a checker with context
https://bugs.webkit.org/show_bug.cgi?id=130959

Reviewed by Andreas Kling.

This code got refactored over time and now both branches do the exact same action
on the stack.
This patch removes the stack split and move the stack cleanup in the common ending
just before restoring the callee saved registers.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (166523 => 166524)


--- trunk/Source/WebCore/ChangeLog	2014-03-31 21:00:31 UTC (rev 166523)
+++ trunk/Source/WebCore/ChangeLog	2014-03-31 21:04:03 UTC (rev 166524)
@@ -1,3 +1,18 @@
+2014-03-31  Benjamin Poulain  <[email protected]>
+
+        CSS JIT: clean up the functions ending when generating a checker with context
+        https://bugs.webkit.org/show_bug.cgi?id=130959
+
+        Reviewed by Andreas Kling.
+
+        This code got refactored over time and now both branches do the exact same action
+        on the stack.
+        This patch removes the stack split and move the stack cleanup in the common ending
+        just before restoring the callee saved registers.
+
+        * cssjit/SelectorCompiler.cpp:
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
+
 2014-03-31  Beth Dakin  <[email protected]>
 
         ThemeMac should use std::array instead of IntSize* for control sizes

Modified: trunk/Source/WebCore/cssjit/SelectorCompiler.cpp (166523 => 166524)


--- trunk/Source/WebCore/cssjit/SelectorCompiler.cpp	2014-03-31 21:00:31 UTC (rev 166523)
+++ trunk/Source/WebCore/cssjit/SelectorCompiler.cpp	2014-03-31 21:04:03 UTC (rev 166524)
@@ -706,24 +706,15 @@
         // Success.
         m_assembler.move(Assembler::TrustedImm32(1), returnRegister);
 
-        StackAllocator successStack = m_stackAllocator;
-        StackAllocator failureStack = m_stackAllocator;
-
-        LocalRegister checkingContextRegister(m_registerAllocator);
-        successStack.popAndDiscardUpTo(m_checkingContextStackReference);
-
         // Failure.
         if (!failureCases.empty()) {
             Assembler::Jump skipFailureCase = m_assembler.jump();
-
             failureCases.link(&m_assembler);
-            failureStack.popAndDiscardUpTo(m_checkingContextStackReference);
             m_assembler.move(Assembler::TrustedImm32(0), returnRegister);
-
             skipFailureCase.link(&m_assembler);
         }
 
-        m_stackAllocator.merge(std::move(successStack), std::move(failureStack));
+        m_stackAllocator.popAndDiscardUpTo(m_checkingContextStackReference);
         m_registerAllocator.restoreCalleeSavedRegisters(m_stackAllocator);
         m_assembler.ret();
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to