Title: [286060] trunk
Revision
286060
Author
ange...@igalia.com
Date
2021-11-19 07:01:50 -0800 (Fri, 19 Nov 2021)

Log Message

[JSC] Workaround for failing mips tests
https://bugs.webkit.org/show_bug.cgi?id=233359

Reviewed by Adrian Perez de Castro.

.:

Add a compiler flag on GCC+mips to work around a code generation bug
resulting in SIGBUS. This only manifests when running 32-bit mips code
on mips64 hardware (which the buildbots do).

* Source/cmake/WebKitCompilerFlags.cmake:

JSTests:

Re-enable tests skipped on mips after adding workaround.

* stress/call-varargs-double-new-array-buffer.js:
* stress/callee-save-fpr.js:
* stress/forward-varargs-double-new-array-buffer.js:
* stress/new-array-with-spread-cow-double.js:
* stress/new-array-with-spread-double-new-array-buffer.js:
* stress/spread-escapes-but-new-array-buffer-does-not-double.js:

PerformanceTests:

Re-enable tests skipped on mips after adding workaround.

* ARES-6/Basic/basic-tests.yaml:

Modified Paths

Diff

Modified: trunk/ChangeLog (286059 => 286060)


--- trunk/ChangeLog	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/ChangeLog	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,3 +1,16 @@
+2021-11-19  Angelos Oikonomopoulos  <ange...@igalia.com>
+
+        [JSC] Workaround for failing mips tests
+        https://bugs.webkit.org/show_bug.cgi?id=233359
+
+        Reviewed by Adrian Perez de Castro.
+
+        Add a compiler flag on GCC+mips to work around a code generation bug
+        resulting in SIGBUS. This only manifests when running 32-bit mips code
+        on mips64 hardware (which the buildbots do).
+
+        * Source/cmake/WebKitCompilerFlags.cmake:
+
 2021-11-18  Yoshiaki Jitsukawa  <yoshiaki.jitsuk...@sony.com>
 
         Implement JPEG XL image decoder using libjxl

Modified: trunk/JSTests/ChangeLog (286059 => 286060)


--- trunk/JSTests/ChangeLog	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/ChangeLog	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,3 +1,19 @@
+2021-11-19  Angelos Oikonomopoulos  <ange...@igalia.com>
+
+        [JSC] Workaround for failing mips tests
+        https://bugs.webkit.org/show_bug.cgi?id=233359
+
+        Reviewed by Adrian Perez de Castro.
+
+        Re-enable tests skipped on mips after adding workaround.
+
+        * stress/call-varargs-double-new-array-buffer.js:
+        * stress/callee-save-fpr.js:
+        * stress/forward-varargs-double-new-array-buffer.js:
+        * stress/new-array-with-spread-cow-double.js:
+        * stress/new-array-with-spread-double-new-array-buffer.js:
+        * stress/spread-escapes-but-new-array-buffer-does-not-double.js:
+
 2021-11-17  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] TypedArray GetArrayLength should not use Reuse

Modified: trunk/JSTests/stress/call-varargs-double-new-array-buffer.js (286059 => 286060)


--- trunk/JSTests/stress/call-varargs-double-new-array-buffer.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/call-varargs-double-new-array-buffer.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 function assert(b, m = "") {
     if (!b)
         throw new Error("Bad assert: " + m);

Modified: trunk/JSTests/stress/callee-save-fpr.js (286059 => 286060)


--- trunk/JSTests/stress/callee-save-fpr.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/callee-save-fpr.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 'use strict';
 
 function _f(a1, a2, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {

Modified: trunk/JSTests/stress/forward-varargs-double-new-array-buffer.js (286059 => 286060)


--- trunk/JSTests/stress/forward-varargs-double-new-array-buffer.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/forward-varargs-double-new-array-buffer.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 "use strict";
 
 function assert(b, m="") {

Modified: trunk/JSTests/stress/new-array-with-spread-cow-double.js (286059 => 286060)


--- trunk/JSTests/stress/new-array-with-spread-cow-double.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/new-array-with-spread-cow-double.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 function shouldBe(actual, expected) {
     if (actual !== expected)
         throw new Error('bad value: ' + actual);

Modified: trunk/JSTests/stress/new-array-with-spread-double-new-array-buffer.js (286059 => 286060)


--- trunk/JSTests/stress/new-array-with-spread-double-new-array-buffer.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/new-array-with-spread-double-new-array-buffer.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 function shouldBe(actual, expected)
 {
     if (actual !== expected)

Modified: trunk/JSTests/stress/spread-escapes-but-new-array-buffer-does-not-double.js (286059 => 286060)


--- trunk/JSTests/stress/spread-escapes-but-new-array-buffer-does-not-double.js	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/JSTests/stress/spread-escapes-but-new-array-buffer-does-not-double.js	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,4 +1,3 @@
-//@ skip if ["mips"].include?($architecture)
 function assert(b) {
     if (!b)
         throw new Error;

Modified: trunk/PerformanceTests/ARES-6/Basic/basic-tests.yaml (286059 => 286060)


--- trunk/PerformanceTests/ARES-6/Basic/basic-tests.yaml	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/PerformanceTests/ARES-6/Basic/basic-tests.yaml	2021-11-19 15:01:50 UTC (rev 286060)
@@ -24,10 +24,5 @@
 - path: .
   tests:
     - stress-test.js
-  cmd: |
-    if ["mips"].include?($architecture)
-        skip
-    else
-        defaultRunNoisyTest unless parseRunCommands
-    end
+  cmd: defaultRunNoisyTest unless parseRunCommands
 

Modified: trunk/PerformanceTests/ChangeLog (286059 => 286060)


--- trunk/PerformanceTests/ChangeLog	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/PerformanceTests/ChangeLog	2021-11-19 15:01:50 UTC (rev 286060)
@@ -1,3 +1,14 @@
+2021-11-19  Angelos Oikonomopoulos  <ange...@igalia.com>
+
+        [JSC] Workaround for failing mips tests
+        https://bugs.webkit.org/show_bug.cgi?id=233359
+
+        Reviewed by Adrian Perez de Castro.
+
+        Re-enable tests skipped on mips after adding workaround.
+
+        * ARES-6/Basic/basic-tests.yaml:
+
 2021-11-15  Angelos Oikonomopoulos  <ange...@igalia.com>
 
         Skip tests newly-failing on mips

Modified: trunk/Source/cmake/WebKitCompilerFlags.cmake (286059 => 286060)


--- trunk/Source/cmake/WebKitCompilerFlags.cmake	2021-11-19 14:51:09 UTC (rev 286059)
+++ trunk/Source/cmake/WebKitCompilerFlags.cmake	2021-11-19 15:01:50 UTC (rev 286060)
@@ -326,3 +326,11 @@
     endif ()
     unset(CMAKE_REQUIRED_FLAGS)
 endif ()
+
+if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND WTF_CPU_MIPS)
+    # Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78176.
+    # This only manifests when executing 32-bit code on a 64-bit
+    # processor. This is a workaround and does not cover all cases
+    # (see comment #28 in the link above).
+    WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-mno-lxc1-sxc1)
+endif ()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to