[webkit-changes] [194820] trunk/Source/JavaScriptCore

2016-01-09 Thread mark . lam
Title: [194820] trunk/Source/_javascript_Core








Revision 194820
Author mark@apple.com
Date 2016-01-09 07:23:56 -0800 (Sat, 09 Jan 2016)


Log Message
The FTL allocated spill slots for BinaryOps is sometimes inaccurate.
https://bugs.webkit.org/show_bug.cgi?id=152918

Reviewed by Filip Pizlo and Saam Barati.

* ftl/FTLCompile.cpp:
- Updated a comment.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
- The code to compute maxNumberOfCatchSpills was unnecessarily allocating an
  extra slot for BinaryOps that don't have Untyped operands, and failing to
  allocate that extra slot for some binary ops.  This is now fixed.

* tests/stress/ftl-shr-exception.js:
* tests/stress/ftl-xor-exception.js:
- Un-skipped these tests.  They now pass with this patch.

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/ftl/FTLCompile.cpp
trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp
trunk/Source/_javascript_Core/tests/stress/ftl-shr-exception.js
trunk/Source/_javascript_Core/tests/stress/ftl-xor-exception.js




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (194819 => 194820)

--- trunk/Source/_javascript_Core/ChangeLog	2016-01-09 13:13:41 UTC (rev 194819)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-01-09 15:23:56 UTC (rev 194820)
@@ -1,3 +1,22 @@
+2016-01-09  Mark Lam  
+
+The FTL allocated spill slots for BinaryOps is sometimes inaccurate.
+https://bugs.webkit.org/show_bug.cgi?id=152918
+
+Reviewed by Filip Pizlo and Saam Barati.
+
+* ftl/FTLCompile.cpp:
+- Updated a comment.
+* ftl/FTLLowerDFGToLLVM.cpp:
+(JSC::FTL::DFG::LowerDFGToLLVM::lower):
+- The code to compute maxNumberOfCatchSpills was unnecessarily allocating an
+  extra slot for BinaryOps that don't have Untyped operands, and failing to
+  allocate that extra slot for some binary ops.  This is now fixed.
+
+* tests/stress/ftl-shr-exception.js:
+* tests/stress/ftl-xor-exception.js:
+- Un-skipped these tests.  They now pass with this patch.
+
 2016-01-09  Andreas Kling  
 
 Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL


Modified: trunk/Source/_javascript_Core/ftl/FTLCompile.cpp (194819 => 194820)

--- trunk/Source/_javascript_Core/ftl/FTLCompile.cpp	2016-01-09 13:13:41 UTC (rev 194819)
+++ trunk/Source/_javascript_Core/ftl/FTLCompile.cpp	2016-01-09 15:23:56 UTC (rev 194820)
@@ -543,7 +543,7 @@
 callOperationExit = >osrExit.last();
 }
 
-// Subs and GetByIds have an interesting register preservation story,
+// BinaryOps and GetByIds have an interesting register preservation story,
 // see comment below at GetById to read about it.
 //
 // We set the registers needing spillage here because they need to be set


Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (194819 => 194820)

--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2016-01-09 13:13:41 UTC (rev 194819)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2016-01-09 15:23:56 UTC (rev 194820)
@@ -262,13 +262,21 @@
 case ArithDiv:
 case ArithMul:
 case ArithSub:
+case ValueAdd:
+case DFG::BitAnd:
+case DFG::BitOr:
+case DFG::BitXor:
+case BitLShift:
+case BitRShift:
+case BitURShift:
+if (!node->isBinaryUseKind(UntypedUse))
+break; // We only compile patchpoints for UntypedUse.
+FALLTHROUGH;
+
 case GetById:
-case GetByIdFlush:
-case ValueAdd: {
-// We may have to flush one thing for GetByIds/ArithSubs when the base and result or the left/right and the result
+case GetByIdFlush: {
+// We may have to flush one thing for GetByIds/ binary ops when the base and result or the left/right and the result
 // are assigned the same register. For a more comprehensive overview, look at the comment in FTLCompile.cpp
-if (node->op() == ArithSub && node->binaryUseKind() != UntypedUse)
-break; // We only compile patchpoints for ArithSub UntypedUse.
 CodeOrigin opCatchOrigin;
 HandlerInfo* exceptionHandler;
 bool willCatchException = m_graph.willCatchExceptionInMachineFrame(node->origin.forExit, opCatchOrigin, exceptionHandler);


Modified: trunk/Source/_javascript_Core/tests/stress/ftl-shr-exception.js (194819 => 194820)

--- 

[webkit-changes] [194821] trunk/Source

2016-01-09 Thread mitz
Title: [194821] trunk/Source








Revision 194821
Author m...@apple.com
Date 2016-01-09 12:13:57 -0800 (Sat, 09 Jan 2016)


Log Message
[Cocoa] Allow overriding the frameworks directory independently of using a staging install path
https://bugs.webkit.org/show_bug.cgi?id=152926

Reviewed by Tim Horton.

Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.

Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.

Source/_javascript_Core:

* Configurations/Base.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define _javascript_CORE_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.
* Configurations/JSC.xcconfig:
  Add quotes to account for spaces.
* Configurations/ToolExecutable.xcconfig:
  Ditto.
* postprocess-headers.sh:
  Ditto.

Source/ThirdParty:

* gtest/xcode/Config/General.xcconfig:
  Add quotes to account for spaces.
* gtest/xcode/Config/ProductionProject.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBCORE_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

Source/WebCore:

* Configurations/WebCore.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBCORE_FRAMEWORKS_DIR and PRODUCTION_FRAMEWORKS_DIR based on
  WK_OVERRIDE_FRAMEWORKS_DIR.

* WebCore.xcodeproj/project.pbxproj: Work around make’s inability to handle spaces in paths
  by creating a symlink to _javascript_CORE_PRIVATE_HEADERS_DIR under BUILT_PRODUCTS_DIR and
  using the symlink as the value of _javascript_Core_SCRIPTS_DIR.

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
* Configurations/WebInspectorUIFramework.xcconfig:
- Define INSTALL_PATH and PRODUCTION_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

Source/WebKit/mac:

* Configurations/WebKitLegacy.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBKIT_LEGACY_FRAMEWORKS_DIR, PRODUCTION_FRAMEWORKS_DIR, and
  WEBCORE_PRIVATE_HEADERS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

* MigrateHeaders.make:
  Use a symlink under BUILT_PRODUCTS_DIR to the WebCore Private Headers. Use a
  BUILT_PRODUCTS_DIR-based path to the framework instead of a TARGET_BUILD_DIR-based one in
  order to avoid spaces.
* migrate-headers.sh:
  Make the symlink to WEBCORE_PRIVATE_HEADERS_DIR that the makefile now uses.

Source/WebKit2:

* Configurations/BaseTarget.xcconfig:
- Add quotes to account for spaces.
- Define WEBKIT_FRAMEWORKS_DIR and UMBRELLA_FRAMEWORKS_DIR based on
  WK_OVERRIDE_FRAMEWORKS_DIR.

* WebKit2.xcodeproj/project.pbxproj:
- In the Migrate WebKitLegacy Headers build phase, work around make’s inability to handle
  spaces in paths by creating a symlink to WEBKIT_LEGACY_PRIVATE_HEADERS_DIR under
  BUILT_PRODUCTS_DIR and using the symlink as the value of
  WEBKIT_LEGACY_PRIVATE_HEADERS_DIR.
- In the Postprocess WKBase.h and Postprocess WKFoundation.h build phases, add quotes to
  account for spaces.

* mac/MigrateHeadersFromWebKitLegacy.make:
  Use a BUILT_PRODUCTS_DIR-based path to the framework instead of a TARGET_BUILD_DIR-based
  one in order to avoid spaces.

* mac/postprocess-framework-headers.sh:
  Add quotes to account for spaces.

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/Configurations/Base.xcconfig
trunk/Source/_javascript_Core/Configurations/JSC.xcconfig
trunk/Source/_javascript_Core/Configurations/ToolExecutable.xcconfig
trunk/Source/_javascript_Core/postprocess-headers.sh
trunk/Source/ThirdParty/ChangeLog
trunk/Source/ThirdParty/gtest/xcode/Config/General.xcconfig
trunk/Source/ThirdParty/gtest/xcode/Config/ProductionProject.xcconfig
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Configurations/WebCore.xcconfig
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebInspectorUI/ChangeLog
trunk/Source/WebInspectorUI/Configurations/Base.xcconfig
trunk/Source/WebInspectorUI/Configurations/WebInspectorUIFramework.xcconfig
trunk/Source/WebKit/mac/ChangeLog
trunk/Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig
trunk/Source/WebKit/mac/MigrateHeaders.make
trunk/Source/WebKit/mac/migrate-headers.sh
trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/Configurations/BaseTarget.xcconfig
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
trunk/Source/WebKit2/mac/MigrateHeadersFromWebKitLegacy.make

[webkit-changes] [194822] trunk/Source/WebCore/platform/gtk/po

2016-01-09 Thread mcatanzaro
Title: [194822] trunk/Source/WebCore/platform/gtk/po








Revision 194822
Author mcatanz...@igalia.com
Date 2016-01-09 15:29:23 -0800 (Sat, 09 Jan 2016)


Log Message
[l10n] Updated Turkish translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=152948

"Reviewed" by Michael Catanzaro.

Patch by Muhammet Kara  on 2016-01-09

* tr.po:

Modified Paths

trunk/Source/WebCore/platform/gtk/po/ChangeLog
trunk/Source/WebCore/platform/gtk/po/tr.po




Diff

Modified: trunk/Source/WebCore/platform/gtk/po/ChangeLog (194821 => 194822)

--- trunk/Source/WebCore/platform/gtk/po/ChangeLog	2016-01-09 20:13:57 UTC (rev 194821)
+++ trunk/Source/WebCore/platform/gtk/po/ChangeLog	2016-01-09 23:29:23 UTC (rev 194822)
@@ -1,3 +1,12 @@
+2016-01-09  Muhammet Kara  
+
+[l10n] Updated Turkish translation of WebKitGTK+
+https://bugs.webkit.org/show_bug.cgi?id=152948
+
+"Reviewed" by Michael Catanzaro.
+
+* tr.po:
+
 2015-12-20  Bernd Homuth  
 
 German translation update


Modified: trunk/Source/WebCore/platform/gtk/po/tr.po (194821 => 194822)

--- trunk/Source/WebCore/platform/gtk/po/tr.po	2016-01-09 20:13:57 UTC (rev 194821)
+++ trunk/Source/WebCore/platform/gtk/po/tr.po	2016-01-09 23:29:23 UTC (rev 194822)
@@ -6,14 +6,14 @@
 # Sabri Ünal , 2014.
 # Furkan Usta , 2015.
 # Gökhan Gurbetoğlu , 2014, 2015.
-# Muhammet Kara , 2014, 2015.
+# Muhammet Kara , 2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: webkit HEAD\n"
 "Report-Msgid-Bugs-To: https://bugs.webkit.org\n"
-"POT-Creation-Date: 2015-08-23 00:17+\n"
-"PO-Revision-Date: 2015-08-23 03:32+0300\n"
+"POT-Creation-Date: 2015-12-09 15:06+\n"
+"PO-Revision-Date: 2016-01-09 22:26+0200\n"
 "Last-Translator: Muhammet Kara \n"
 "Language-Team: Türkçe \n"
 "Language: tr\n"
@@ -31,35 +31,39 @@
 msgid "Not allowed to use restricted network port"
 msgstr "Sınırlı ağ bağlantı noktası kullanmaya izin verilmiyor"
 
-#: ../ErrorsGtk.cpp:45
+#: ../ErrorsGtk.cpp:44
+msgid "Blocked by content blocker"
+msgstr "İçerik engelleyici tarafından engellendi"
+
+#: ../ErrorsGtk.cpp:50
 msgid "URL cannot be shown"
 msgstr "URL gösterilemiyor"
 
-#: ../ErrorsGtk.cpp:51
+#: ../ErrorsGtk.cpp:56
 msgid "Frame load was interrupted"
 msgstr "Çerçeve yükleme kesintiye uğradı"
 
-#: ../ErrorsGtk.cpp:57
+#: ../ErrorsGtk.cpp:62
 msgid "Content with the specified MIME type cannot be shown"
 msgstr "Belirtilen MIME türündeki içerik gösterilemiyor"
 
-#: ../ErrorsGtk.cpp:63
+#: ../ErrorsGtk.cpp:68
 msgid "File does not exist"
 msgstr "Dosya mevcut değil"
 
-#: ../ErrorsGtk.cpp:69
+#: ../ErrorsGtk.cpp:74
 msgid "Plugin will handle load"
 msgstr "Yükleme işini eklenti halledecek"
 
-#: ../ErrorsGtk.cpp:81
+#: ../ErrorsGtk.cpp:86
 msgid "User cancelled the download"
 msgstr "Kullanıcı indirmeyi iptal etti"
 
-#: ../ErrorsGtk.cpp:97
+#: ../ErrorsGtk.cpp:102
 msgid "Printer not found"
 msgstr "Yazıcı bulunamadı"
 
-#: ../ErrorsGtk.cpp:102
+#: ../ErrorsGtk.cpp:107
 msgid "Invalid page range"
 msgstr "Geçersiz sayfa aralığı"
 
@@ -363,8 +367,7 @@
 msgid "Plug-in Failure"
 msgstr "Eklenti Hatası"
 
-#. FIXME: If this file gets localized, this should really be localized as one
-#. string with a wildcard for the number.
+#. FIXME: If this file gets localized, this should really be localized as one string with a wildcard for the number.
 #: ../LocalizedStringsGtk.cpp:530
 msgid " files"
 msgstr "dosya"
@@ -615,7 +618,7 @@
 msgid "Subtitle of the label to show on a snapshotted plug-in"
 msgstr "Görüntüsü alınan bir eklenti üzerinde gösterilecek etiket alt başlığı"
 
-#: ../../../../WebKit2/Shared/Downloads/soup/DownloadSoup.cpp:99
+#: ../../../../WebKit2/Shared/Downloads/soup/DownloadSoup.cpp:100
 #, c-format
 msgid ""
 "Cannot determine destination URI for download with suggested filename %s"
@@ -640,8 +643,7 @@
 msgid "Authentication required by %s:%i"
 msgstr "%s:%i tarafından kaynak doğrulama isteniyor"
 
-#. Label on the HTTP authentication dialog. %s is a (probably English) message
-#. from the website.
+#. Label on the HTTP authentication dialog. %s is a (probably English) message from the website.
 #: ../../../../WebKit2/UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:131
 #, c-format
 msgid "The site says: “%s”"
@@ -1337,14 +1339,14 @@
 msgid "Whether file access is allowed from file URLs."
 msgstr "Dosya adreslerinden (URL) dosya erişimine izin verilip verilmeyeceği."
 
-#: ../../../../WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:95
+#: ../../../../WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:96
 #: ../../../../WebKit2/UIProcess/API/gtk/WebKitURIResponse.cpp:105
 #: ../../../../WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp:110
-#: ../../../../WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:913
+#: 

[webkit-changes] [194823] trunk

2016-01-09 Thread zalan
Title: [194823] trunk








Revision 194823
Author za...@apple.com
Date 2016-01-09 16:38:56 -0800 (Sat, 09 Jan 2016)


Log Message
REGRESSION (r194426): First email field is not autofilled on amazon.com
https://bugs.webkit.org/show_bug.cgi?id=152945


Reviewed by Simon Fraser.

r194426 missed marking the m_layoutRoot for layout while converting to full layout (it only marked the new layout root).

Source/WebCore:

Test: fast/forms/multiple-subtree-layout-failure.html

* page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree):

LayoutTests:

* fast/forms/multiple-subtree-layout-failure-expected.html: Added.
* fast/forms/multiple-subtree-layout-failure.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/FrameView.cpp


Added Paths

trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure-expected.html
trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure.html




Diff

Modified: trunk/LayoutTests/ChangeLog (194822 => 194823)

--- trunk/LayoutTests/ChangeLog	2016-01-09 23:29:23 UTC (rev 194822)
+++ trunk/LayoutTests/ChangeLog	2016-01-10 00:38:56 UTC (rev 194823)
@@ -1,3 +1,16 @@
+2016-01-09  Zalan Bujtas  
+
+REGRESSION (r194426): First email field is not autofilled on amazon.com
+https://bugs.webkit.org/show_bug.cgi?id=152945
+
+
+Reviewed by Simon Fraser.
+
+r194426 missed marking the m_layoutRoot for layout while converting to full layout (it only marked the new layout root).
+
+* fast/forms/multiple-subtree-layout-failure-expected.html: Added.
+* fast/forms/multiple-subtree-layout-failure.html: Added.
+
 2016-01-08  Zalan Bujtas  
 
 Absolute positioning -webkit-search-cancel-button crashes Safari.


Added: trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure-expected.html (0 => 194823)

--- trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure-expected.html	(rev 0)
+++ trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure-expected.html	2016-01-10 00:38:56 UTC (rev 194823)
@@ -0,0 +1,10 @@
+
+
+
+This tests when we issue subtree layout on multiple subtrees, they all get laid out properly.
+
+
+
+
+
+


Added: trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure.html (0 => 194823)

--- trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure.html	(rev 0)
+++ trunk/LayoutTests/fast/forms/multiple-subtree-layout-failure.html	2016-01-10 00:38:56 UTC (rev 194823)
@@ -0,0 +1,20 @@
+
+
+
+This tests when we issue subtree layout on multiple subtrees, they all get laid out properly.
+
+
+
+
+
+if (window.testRunner)
+testRunner.waitUntilDone();
+setTimeout(function() {
+document.getElementById("test").value = "foobar";
+document.getElementById("test1").value = "foobar";
+if (window.testRunner)
+testRunner.notifyDone();
+}, 0);
+
+
+


Modified: trunk/Source/WebCore/ChangeLog (194822 => 194823)

--- trunk/Source/WebCore/ChangeLog	2016-01-09 23:29:23 UTC (rev 194822)
+++ trunk/Source/WebCore/ChangeLog	2016-01-10 00:38:56 UTC (rev 194823)
@@ -1,3 +1,18 @@
+2016-01-09  Zalan Bujtas  
+
+REGRESSION (r194426): First email field is not autofilled on amazon.com
+https://bugs.webkit.org/show_bug.cgi?id=152945
+
+
+Reviewed by Simon Fraser.
+
+r194426 missed marking the m_layoutRoot for layout while converting to full layout (it only marked the new layout root).
+
+Test: fast/forms/multiple-subtree-layout-failure.html
+
+* page/FrameView.cpp:
+(WebCore::FrameView::scheduleRelayoutOfSubtree):
+
 2016-01-09  Dan Bernstein  
 
 [Cocoa] Allow overriding the frameworks directory independently of using a staging install path


Modified: trunk/Source/WebCore/page/FrameView.cpp (194822 => 194823)

--- trunk/Source/WebCore/page/FrameView.cpp	2016-01-09 23:29:23 UTC (rev 194822)
+++ trunk/Source/WebCore/page/FrameView.cpp	2016-01-10 00:38:56 UTC (rev 194823)
@@ -2648,7 +2648,7 @@
 return;
 
 if (!m_layoutRoot) {
-// Just relayout the subtree.
+// We already have a pending (full) layout. Just mark the subtree for layout.
 newRelayoutRoot.markContainingBlocksForLayout(ScheduleRelayout::No);
 InspectorInstrumentation::didInvalidateLayout(frame());
 return;
@@ -2669,10 +2669,9 @@
 InspectorInstrumentation::didInvalidateLayout(frame());
 return;
 }
-
-// Just do a full relayout.
-m_layoutRoot = 
+// Two disjoint subtrees need layout. Mark both of them and issue a full layout instead.
 convertSubtreeLayoutToFullLayout();
+newRelayoutRoot.markContainingBlocksForLayout(ScheduleRelayout::No);
 InspectorInstrumentation::didInvalidateLayout(frame());
 }
 






___
webkit-changes mailing list

[webkit-changes] [194824] trunk/Source/JavaScriptCore

2016-01-09 Thread fpizlo
Title: [194824] trunk/Source/_javascript_Core








Revision 194824
Author fpi...@apple.com
Date 2016-01-09 20:15:59 -0800 (Sat, 09 Jan 2016)


Log Message
Air should support Branch64 with immediates
https://bugs.webkit.org/show_bug.cgi?id=152951

Reviewed by Oliver Hunt.

This doesn't significantly improve performance on any benchmarks, but it's great to get this
obvious omission out of the way.

* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::branch64):
* b3/air/AirOpcode.opcodes:
* b3/testb3.cpp:
(JSC::B3::testPowDoubleByIntegerLoop):
(JSC::B3::testBranch64Equal):
(JSC::B3::testBranch64EqualImm):
(JSC::B3::testBranch64EqualMem):
(JSC::B3::testBranch64EqualMemImm):
(JSC::B3::zero):
(JSC::B3::run):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h
trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes
trunk/Source/_javascript_Core/b3/testb3.cpp




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (194823 => 194824)

--- trunk/Source/_javascript_Core/ChangeLog	2016-01-10 00:38:56 UTC (rev 194823)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-01-10 04:15:59 UTC (rev 194824)
@@ -1,3 +1,25 @@
+2016-01-09  Filip Pizlo  
+
+Air should support Branch64 with immediates
+https://bugs.webkit.org/show_bug.cgi?id=152951
+
+Reviewed by Oliver Hunt.
+
+This doesn't significantly improve performance on any benchmarks, but it's great to get this
+obvious omission out of the way.
+
+* assembler/MacroAssemblerX86_64.h:
+(JSC::MacroAssemblerX86_64::branch64):
+* b3/air/AirOpcode.opcodes:
+* b3/testb3.cpp:
+(JSC::B3::testPowDoubleByIntegerLoop):
+(JSC::B3::testBranch64Equal):
+(JSC::B3::testBranch64EqualImm):
+(JSC::B3::testBranch64EqualMem):
+(JSC::B3::testBranch64EqualMemImm):
+(JSC::B3::zero):
+(JSC::B3::run):
+
 2016-01-09  Dan Bernstein  
 
 [Cocoa] Allow overriding the frameworks directory independently of using a staging install path


Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (194823 => 194824)

--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2016-01-10 00:38:56 UTC (rev 194823)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2016-01-10 04:15:59 UTC (rev 194824)
@@ -722,6 +722,16 @@
 return Jump(m_assembler.jCC(x86Condition(cond)));
 }
 
+Jump branch64(RelationalCondition cond, RegisterID left, TrustedImm32 right)
+{
+if (((cond == Equal) || (cond == NotEqual)) && !right.m_value) {
+m_assembler.testq_rr(left, left);
+return Jump(m_assembler.jCC(x86Condition(cond)));
+}
+m_assembler.cmpq_ir(right.m_value, left);
+return Jump(m_assembler.jCC(x86Condition(cond)));
+}
+
 Jump branch64(RelationalCondition cond, RegisterID left, TrustedImm64 right)
 {
 if (((cond == Equal) || (cond == NotEqual)) && !right.m_value) {
@@ -750,6 +760,12 @@
 return Jump(m_assembler.jCC(x86Condition(cond)));
 }
 
+Jump branch64(RelationalCondition cond, Address left, TrustedImm32 right)
+{
+m_assembler.cmpq_im(right.m_value, left.offset, left.base);
+return Jump(m_assembler.jCC(x86Condition(cond)));
+}
+
 Jump branch64(RelationalCondition cond, Address left, TrustedImm64 right)
 {
 move(right, scratchRegister());


Modified: trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes (194823 => 194824)

--- trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes	2016-01-10 00:38:56 UTC (rev 194823)
+++ trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes	2016-01-10 04:15:59 UTC (rev 194824)
@@ -540,8 +540,10 @@
 
 64: Branch64 U:G:32, U:G:64, U:G:64 /branch
 RelCond, Tmp, Tmp
+RelCond, Tmp, Imm
 x86: RelCond, Tmp, Addr
 x86: RelCond, Addr, Tmp
+x86: RelCond, Addr, Imm
 x86: RelCond, Index, Tmp
 
 BranchTest8 U:G:32, U:G:8, U:G:8 /branch


Modified: trunk/Source/_javascript_Core/b3/testb3.cpp (194823 => 194824)

--- trunk/Source/_javascript_Core/b3/testb3.cpp	2016-01-10 00:38:56 UTC (rev 194823)
+++ trunk/Source/_javascript_Core/b3/testb3.cpp	2016-01-10 04:15:59 UTC (rev 194824)
@@ -8868,6 +8868,134 @@
 CHECK(isIdentical(compileAndRun(proc, xOperand, yOperand), pow(xOperand, yOperand)));
 }
 
+void testBranch64Equal(int64_t left, int64_t right)
+{
+Procedure proc;
+BasicBlock* root = proc.addBlock();
+BasicBlock* thenCase = proc.addBlock();
+BasicBlock* elseCase = proc.addBlock();
+
+Value* arg1 = root->appendNew(proc, Origin(), GPRInfo::argumentGPR0);
+Value* arg2 = root->appendNew(proc, Origin(), GPRInfo::argumentGPR1);
+root->appendNew(
+proc, Branch, Origin(),
+root->appendNew(proc, Equal, Origin(), arg1, arg2),
+FrequentedBlock(thenCase), FrequentedBlock(elseCase));
+
+bool 

[webkit-changes] [194825] trunk/Source/WebCore

2016-01-09 Thread simon . fraser
Title: [194825] trunk/Source/WebCore








Revision 194825
Author simon.fra...@apple.com
Date 2016-01-09 22:39:43 -0800 (Sat, 09 Jan 2016)


Log Message
Hook up display-list drawing in GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=152946

Reviewed by Zalan Bujtas.

Have GraphicsLayerCA hold a DisplayList. If enabled, do a display-list record
in GraphicsLayerCA::recursiveCommitChanges(), and a playback in GraphicsLayerCA::platformCALayerPaintContents().

GraphicsLayerCA needs to maintain a m_hasEverPainted flag to know to do a full record
at first paint (when there are no dirty rects).

Plumb 'isUsingDisplayListDrawing' through to TileGrid via PlatformCALayer{Client}
so that we can decorate the tile paint counters with an outline.

Have RenderLayerCompositor push the displayListDrawingEnabled state down through
RenderLayerBackings to GraphicsLayers.

Convert RenderLayerCompositor to use initializers.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::usesDisplayListDrawing):
(WebCore::GraphicsLayer::setUsesDisplayListDrawing):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setUsesDisplayListDrawing):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
(WebCore::GraphicsLayerCA::updateDrawsContent):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::PlatformCALayer::drawRepaintIndicator):
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::isUsingDisplayListDrawing):
* platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::platformCALayerShowRepaintCounter):
(WebCore::TileGrid::isUsingDisplayListDrawing):
* platform/graphics/ca/TileGrid.h:
* platform/graphics/displaylists/DisplayList.h: Sadly need to include DisplayListItems.h
to get things to compile. I wasn't able to avoid this even when making functions non-inline.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createGraphicsLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
* rendering/RenderLayerCompositor.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
trunk/Source/WebCore/platform/graphics/GraphicsLayer.h
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp
trunk/Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h
trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp
trunk/Source/WebCore/platform/graphics/ca/TileGrid.h
trunk/Source/WebCore/platform/graphics/displaylists/DisplayList.h
trunk/Source/WebCore/rendering/RenderLayerBacking.cpp
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp
trunk/Source/WebCore/rendering/RenderLayerCompositor.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (194824 => 194825)

--- trunk/Source/WebCore/ChangeLog	2016-01-10 04:15:59 UTC (rev 194824)
+++ trunk/Source/WebCore/ChangeLog	2016-01-10 06:39:43 UTC (rev 194825)
@@ -1,3 +1,54 @@
+2016-01-09  Simon Fraser  
+
+Hook up display-list drawing in GraphicsLayerCA
+https://bugs.webkit.org/show_bug.cgi?id=152946
+
+Reviewed by Zalan Bujtas.
+
+Have GraphicsLayerCA hold a DisplayList. If enabled, do a display-list record
+in GraphicsLayerCA::recursiveCommitChanges(), and a playback in GraphicsLayerCA::platformCALayerPaintContents().
+
+GraphicsLayerCA needs to maintain a m_hasEverPainted flag to know to do a full record
+at first paint (when there are no dirty rects).
+
+Plumb 'isUsingDisplayListDrawing' through to TileGrid via PlatformCALayer{Client}
+so that we can decorate the tile paint counters with an outline.
+
+Have RenderLayerCompositor push the displayListDrawingEnabled state down through
+RenderLayerBackings to GraphicsLayers.
+
+Convert RenderLayerCompositor to use initializers.
+
+* platform/graphics/GraphicsLayer.cpp:
+(WebCore::GraphicsLayer::GraphicsLayer):
+* platform/graphics/GraphicsLayer.h:
+(WebCore::GraphicsLayer::usesDisplayListDrawing):
+(WebCore::GraphicsLayer::setUsesDisplayListDrawing):
+* platform/graphics/ca/GraphicsLayerCA.cpp:
+(WebCore::GraphicsLayerCA::GraphicsLayerCA):
+(WebCore::GraphicsLayerCA::setUsesDisplayListDrawing):
+(WebCore::GraphicsLayerCA::recursiveCommitChanges):
+(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
+(WebCore::GraphicsLayerCA::updateDrawsContent):
+