Title: [265692] trunk/Source/_javascript_Core
Revision
265692
Author
[email protected]
Date
2020-08-14 12:13:21 -0700 (Fri, 14 Aug 2020)

Log Message

[ARMv7][JSC] Conservative GC is not considering `r7` as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since `r7` is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

* heap/RegisterState.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (265691 => 265692)


--- trunk/Source/_javascript_Core/ChangeLog	2020-08-14 18:58:21 UTC (rev 265691)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-08-14 19:13:21 UTC (rev 265692)
@@ -1,3 +1,21 @@
+2020-08-14  Caio Lima  <[email protected]>
+
+        [ARMv7][JSC] Conservative GC is not considering `r7` as a root
+        https://bugs.webkit.org/show_bug.cgi?id=215512
+
+        Reviewed by Yusuke Suzuki.
+
+        Since `r7` is a callee-saved register on ARMv7
+        we need to consider it as a conservative root.
+
+        See the statement "A subroutine must preserve
+        the contents of the registers r4-r8, r10, r11
+        and SP (and r9 in PCS variants that designate
+        r9 as v6) form page 15 of
+        https://developer.arm.com/documentation/ihi0042/f/.
+
+        * heap/RegisterState.h:
+
 2020-08-12  Keith Miller  <[email protected]>
 
         OSRAvailabilityAnalysis shouldn't mark GetStack nodes directly as valid places for recovery

Modified: trunk/Source/_javascript_Core/heap/RegisterState.h (265691 => 265692)


--- trunk/Source/_javascript_Core/heap/RegisterState.h	2020-08-14 18:58:21 UTC (rev 265691)
+++ trunk/Source/_javascript_Core/heap/RegisterState.h	2020-08-14 19:13:21 UTC (rev 265692)
@@ -78,6 +78,7 @@
     uint32_t r4;
     uint32_t r5;
     uint32_t r6;
+    uint32_t r7;
     uint32_t r8;
     uint32_t r9;
     uint32_t r10;
@@ -92,6 +93,7 @@
     SAVE_REG(r4, registers.r4); \
     SAVE_REG(r5, registers.r5); \
     SAVE_REG(r6, registers.r6); \
+    SAVE_REG(r7, registers.r7); \
     SAVE_REG(r8, registers.r8); \
     SAVE_REG(r9, registers.r9); \
     SAVE_REG(r10, registers.r10); \
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to