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

Reply via email to