Title: [221012] trunk/Source/_javascript_Core
- Revision
- 221012
- Author
- [email protected]
- Date
- 2017-08-22 08:50:50 -0700 (Tue, 22 Aug 2017)
Log Message
[Win][Release] Crash when running testmasm executable.
https://bugs.webkit.org/show_bug.cgi?id=175772
Reviewed by Mark Lam.
We need to save and restore the modified registers in case one or more registers are callee saved
on the relevant platforms.
* assembler/testmasm.cpp:
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (221011 => 221012)
--- trunk/Source/_javascript_Core/ChangeLog 2017-08-22 15:46:30 UTC (rev 221011)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-08-22 15:50:50 UTC (rev 221012)
@@ -1,3 +1,17 @@
+2017-08-22 Per Arne Vollan <[email protected]>
+
+ [Win][Release] Crash when running testmasm executable.
+ https://bugs.webkit.org/show_bug.cgi?id=175772
+
+ Reviewed by Mark Lam.
+
+ We need to save and restore the modified registers in case one or more registers are callee saved
+ on the relevant platforms.
+
+ * assembler/testmasm.cpp:
+ (JSC::testProbeReadsArgumentRegisters):
+ (JSC::testProbeWritesArgumentRegisters):
+
2017-08-21 Mark Lam <[email protected]>
Change probe code to use static_assert instead of COMPILE_ASSERT.
Modified: trunk/Source/_javascript_Core/assembler/testmasm.cpp (221011 => 221012)
--- trunk/Source/_javascript_Core/assembler/testmasm.cpp 2017-08-22 15:46:30 UTC (rev 221011)
+++ trunk/Source/_javascript_Core/assembler/testmasm.cpp 2017-08-22 15:50:50 UTC (rev 221012)
@@ -177,6 +177,11 @@
compileAndRun<void>([&] (CCallHelpers& jit) {
jit.emitFunctionPrologue();
+ jit.push(GPRInfo::argumentGPR0);
+ jit.push(GPRInfo::argumentGPR1);
+ jit.push(GPRInfo::argumentGPR2);
+ jit.push(GPRInfo::argumentGPR3);
+
jit.move(CCallHelpers::TrustedImm32(testWord32(0)), GPRInfo::argumentGPR0);
jit.convertInt32ToDouble(GPRInfo::argumentGPR0, FPRInfo::fpRegT0);
jit.move(CCallHelpers::TrustedImm32(testWord32(1)), GPRInfo::argumentGPR0);
@@ -204,6 +209,12 @@
CHECK_EQ(cpu.fpr(FPRInfo::fpRegT0), testWord32(0));
CHECK_EQ(cpu.fpr(FPRInfo::fpRegT1), testWord32(1));
});
+
+ jit.pop(GPRInfo::argumentGPR3);
+ jit.pop(GPRInfo::argumentGPR2);
+ jit.pop(GPRInfo::argumentGPR1);
+ jit.pop(GPRInfo::argumentGPR0);
+
jit.emitFunctionEpilogue();
jit.ret();
});
@@ -219,6 +230,11 @@
compileAndRun<void>([&] (CCallHelpers& jit) {
jit.emitFunctionPrologue();
+ jit.push(GPRInfo::argumentGPR0);
+ jit.push(GPRInfo::argumentGPR1);
+ jit.push(GPRInfo::argumentGPR2);
+ jit.push(GPRInfo::argumentGPR3);
+
// Pre-initialize with non-expected values.
#if USE(JSVALUE64)
jit.move(CCallHelpers::TrustedImm64(0), GPRInfo::argumentGPR0);
@@ -260,6 +276,11 @@
CHECK_EQ(cpu.fpr<uint64_t>(FPRInfo::fpRegT1), testWord64(1));
});
+ jit.pop(GPRInfo::argumentGPR3);
+ jit.pop(GPRInfo::argumentGPR2);
+ jit.pop(GPRInfo::argumentGPR1);
+ jit.pop(GPRInfo::argumentGPR0);
+
jit.emitFunctionEpilogue();
jit.ret();
});
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes