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