diff options
-rw-r--r-- | waterfox/bug1375074-save-restore-x28.patch | 74 | ||||
-rw-r--r-- | waterfox/waterfox.spec | 25 |
2 files changed, 14 insertions, 85 deletions
diff --git a/waterfox/bug1375074-save-restore-x28.patch b/waterfox/bug1375074-save-restore-x28.patch deleted file mode 100644 index 57a83a2..0000000 --- a/waterfox/bug1375074-save-restore-x28.patch +++ /dev/null @@ -1,74 +0,0 @@ -# HG changeset patch -# User Lars T Hansen <lhansen@mozilla.com> -# Date 1519822672 -3600 -# Wed Feb 28 13:57:52 2018 +0100 -# Node ID 672f0415217b202ae59a930769dffd9d6ba6b87c -# Parent 825fd04dacc6297d3a980ec4184079405950b35d -Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. - -diff --git a/js/src/jit-test/tests/bug1375074.js b/js/src/jit-test/tests/bug1375074.js -new file mode 100644 ---- /dev/null -+++ b/js/src/jit-test/tests/bug1375074.js -@@ -0,0 +1,18 @@ -+// This forces the VM to start creating unboxed objects and thus stresses a -+// particular path into generated code for a specialized unboxed object -+// constructor. -+ -+var K = 2000; // 2000 should be plenty -+var s = "["; -+var i; -+for ( i=0; i < K-1; i++ ) -+ s = s + `{"i":${i}},`; -+s += `{"i":${i}}]`; -+var v = JSON.parse(s); -+ -+assertEq(v.length == K, true); -+ -+for ( i=0; i < K; i++) { -+ assertEq(v[i] instanceof Object, true); -+ assertEq(v[i].i, i); -+} -diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp ---- a/js/src/vm/UnboxedObject.cpp -+++ b/js/src/vm/UnboxedObject.cpp -@@ -95,7 +95,15 @@ UnboxedLayout::makeConstructorCode(JSCon - #endif - - #ifdef JS_CODEGEN_ARM64 -- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing. -+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for -+ // addressing. The register we use for PSP may however also be used by -+ // calling code, and it is nonvolatile, so save it. Do this as a special -+ // case first because the generic save/restore code needs the PSP to be -+ // initialized already. -+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); -+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); -+ -+ // Initialize the PSP from the SP. - masm.initStackPtr(); - #endif - -@@ -233,7 +241,22 @@ UnboxedLayout::makeConstructorCode(JSCon - masm.pop(ScratchDoubleReg); - masm.PopRegsInMask(savedNonVolatileRegisters); - -+#ifdef JS_CODEGEN_ARM64 -+ // Now restore the value that was in the PSP register on entry, and return. -+ -+ // Obtain the correct SP from the PSP. -+ masm.Mov(sp, PseudoStackPointer64); -+ -+ // Restore the saved value of the PSP register, this value is whatever the -+ // caller had saved in it, not any actual SP value, and it must not be -+ // overwritten subsequently. -+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); -+ -+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. -+ masm.Ret(vixl::lr); -+#else - masm.abiret(); -+#endif - - masm.bind(&failureStoreOther); - diff --git a/waterfox/waterfox.spec b/waterfox/waterfox.spec index 6c07fa6..9f0ab9f 100644 --- a/waterfox/waterfox.spec +++ b/waterfox/waterfox.spec @@ -1,6 +1,6 @@ -%global commit df884bb1dbafb2c23595ec74b0fd74bc92e5c3c7 +%global commit f6fe91ce29333271a5ef97ba148294404d28ab3f %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global date 20200213 +%global date 20200313 %global with_snapshot 1 %global branch classic @@ -159,8 +159,8 @@ BuildRequires: %{scl_buildreq} Summary: Waterfox Web browser Name: waterfox -Version: 2020.02 -Release: 12.%{branch}%{?gver}%{?dist} +Version: 2020.03.1 +Release: 11%{?branch:.%{branch}}%{?gver}%{?dist} URL: https://www.waterfox.net License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -216,7 +216,6 @@ Patch402: mozilla-1196777.patch Patch406: mozilla-256180.patch Patch413: mozilla-1353817.patch Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch -Patch416: bug1375074-save-restore-x28.patch Patch417: mozilla-1436242.patch Patch418: https://hg.mozilla.org/integration/autoland/raw-rev/342812d23eb9#/mozilla-1336978.patch Patch419: https://hg.mozilla.org/mozilla-central/raw-rev/4723934741c5#/mozilla-1320560.patch @@ -426,7 +425,6 @@ This package contains results of tests executed during build. %ifarch %{arm} %patch415 -p1 -b .mozilla-1238661 %endif -%patch416 -p1 -b .bug1375074-save-restore-x28 %patch417 -p1 -b .mozilla-1436242 %patch418 -p1 -b .mozilla-1336978 %patch419 -p1 -b .mozilla-1320560 @@ -459,11 +457,13 @@ for i in 1404057 1404324 1404180 1405878 ;do done # 1: unneeded -# 2: no apply -# 3: uncertain +# 2: unneeded +# 3: no apply +# 4: uncertain for i in \ - 702179 991253 1021761 1144632 1288587 1379148 1393235 1393283 1395486 1430508 1433747 1452576 1453127 1466606 1469257 \ - 1384121 1388744 1413143 \ + 702179 991253 1021761 1144632 1288587 1379148 1393235 1393283 1393627 \ + 1395486 1427126 1430508 1433747 1452576 1453127 1454285 1466606 1469257 \ + 1384121 1388744 1413143 1415883 1437450 \ 1447519 do rm -f _patches/patch-bug${i} @@ -1084,11 +1084,14 @@ fi #--------------------------------------------------------------------- %changelog -* Tue Feb 18 2020 B Stack <bgstack15@gmail.com> - 2020.01-12.classic.20200213gitdf884bb +* Mon Mar 16 2020 B Stack <bgstack15@gmail.com> - 2020.02.1-11.classic.20200313gitf6fe91c - add el7 and el8 support - repackage for stackrpms - disable simd globally +* Fri Mar 13 2020 Phantom X <megaphantomx at bol dot com dot br> - 2020.03.1-2.classic.20200313gitf6fe91c +- 2020.03.1 + * Sun Feb 16 2020 Phantom X <megaphantomx at bol dot com dot br> - 2020.02-2.classic.20200213gitdf884bb - Disable PGO again |