Title: [231547] trunk/Source/_javascript_Core
- Revision
- 231547
- Author
- [email protected]
- Date
- 2018-05-08 23:29:05 -0700 (Tue, 08 May 2018)
Log Message
[MIPS] Collect callee-saved register using inline assembly
https://bugs.webkit.org/show_bug.cgi?id=185428
Patch by Dominik Infuehr <[email protected]> on 2018-05-08
Reviewed by Yusuke Suzuki.
MIPS used setjmp instead of collecting registers with inline assembly like
other architectures.
* heap/RegisterState.h:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (231546 => 231547)
--- trunk/Source/_javascript_Core/ChangeLog 2018-05-09 06:01:19 UTC (rev 231546)
+++ trunk/Source/_javascript_Core/ChangeLog 2018-05-09 06:29:05 UTC (rev 231547)
@@ -1,3 +1,15 @@
+2018-05-08 Dominik Infuehr <[email protected]>
+
+ [MIPS] Collect callee-saved register using inline assembly
+ https://bugs.webkit.org/show_bug.cgi?id=185428
+
+ Reviewed by Yusuke Suzuki.
+
+ MIPS used setjmp instead of collecting registers with inline assembly like
+ other architectures.
+
+ * heap/RegisterState.h:
+
2018-05-07 Yusuke Suzuki <[email protected]>
[BigInt] Simplifying JSBigInt by using bool addition
Modified: trunk/Source/_javascript_Core/heap/RegisterState.h (231546 => 231547)
--- trunk/Source/_javascript_Core/heap/RegisterState.h 2018-05-09 06:01:19 UTC (rev 231546)
+++ trunk/Source/_javascript_Core/heap/RegisterState.h 2018-05-09 06:29:05 UTC (rev 231547)
@@ -127,6 +127,32 @@
SAVE_REG(x27, registers.x27); \
SAVE_REG(x28, registers.x28)
+#elif CPU(MIPS)
+struct RegisterState {
+ uint32_t r16;
+ uint32_t r17;
+ uint32_t r18;
+ uint32_t r19;
+ uint32_t r20;
+ uint32_t r21;
+ uint32_t r22;
+ uint32_t r23;
+};
+
+#define SAVE_REG(regname, where) \
+ asm volatile ("sw $" #regname ", %0" : "=m"(where) : : "memory")
+
+#define ALLOCATE_AND_GET_REGISTER_STATE(registers) \
+ RegisterState registers; \
+ SAVE_REG(16, registers.r16); \
+ SAVE_REG(17, registers.r17); \
+ SAVE_REG(18, registers.r18); \
+ SAVE_REG(19, registers.r19); \
+ SAVE_REG(20, registers.r20); \
+ SAVE_REG(21, registers.r21); \
+ SAVE_REG(22, registers.r22); \
+ SAVE_REG(23, registers.r23)
+
#endif
#endif // !OS(WINDOWS)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes