Title: [267867] trunk/Source/_javascript_Core
Revision
267867
Author
[email protected]
Date
2020-10-01 23:14:25 -0700 (Thu, 01 Oct 2020)

Log Message

[JSC] Masm probe should invoke JIT operation function
https://bugs.webkit.org/show_bug.cgi?id=217199

Reviewed by Mark Lam.

Masm probe function should be invoked via OperationPtrTag since it is invoked from JIT code, and it is native code.
And we should register probe trampoline as JIT operation.

* assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.cpp:
* assembler/MacroAssemblerMIPS.cpp:
* assembler/MacroAssemblerX86Common.cpp:
* runtime/JSCPtrTag.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (267866 => 267867)


--- trunk/Source/_javascript_Core/ChangeLog	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-10-02 06:14:25 UTC (rev 267867)
@@ -1,3 +1,20 @@
+2020-10-01  Yusuke Suzuki  <[email protected]>
+
+        [JSC] Masm probe should invoke JIT operation function
+        https://bugs.webkit.org/show_bug.cgi?id=217199
+
+        Reviewed by Mark Lam.
+
+        Masm probe function should be invoked via OperationPtrTag since it is invoked from JIT code, and it is native code.
+        And we should register probe trampoline as JIT operation.
+
+        * assembler/MacroAssemblerARM64.cpp:
+        (JSC::MacroAssembler::probe):
+        * assembler/MacroAssemblerARMv7.cpp:
+        * assembler/MacroAssemblerMIPS.cpp:
+        * assembler/MacroAssemblerX86Common.cpp:
+        * runtime/JSCPtrTag.h:
+
 2020-10-01  Adrian Perez de Castro <[email protected]> and Don Olmstead  <[email protected]>
 
         Non-unified build fixes, early October 2020 edition

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp (267866 => 267867)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp	2020-10-02 06:14:25 UTC (rev 267867)
@@ -41,7 +41,8 @@
 
 #if ENABLE(MASM_PROBE)
 
-extern "C" void ctiMasmProbeTrampoline();
+extern "C" JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
+JSC_ANNOTATE_JIT_OPERATION(ctiMasmProbeTrampoline, ctiMasmProbeTrampoline);
 
 using namespace ARM64Registers;
 
@@ -541,7 +542,7 @@
     storePair64(x24, x25, sp, TrustedImm32(offsetof(IncomingProbeRecord, x24)));
     storePair64(x26, x27, sp, TrustedImm32(offsetof(IncomingProbeRecord, x26)));
     storePair64(x28, x30, sp, TrustedImm32(offsetof(IncomingProbeRecord, x28))); // Note: x30 is lr.
-    move(TrustedImmPtr(tagCFunction<JITProbeTrampolinePtrTag>(ctiMasmProbeTrampoline)), x26);
+    move(TrustedImmPtr(tagCFunction<OperationPtrTag>(ctiMasmProbeTrampoline)), x26);
     move(TrustedImmPtr(tagCFunction<JITProbeExecutorPtrTag>(Probe::executeProbe)), x28);
 #if CPU(ARM64E)
     ASSERT(isTaggedWith(function, JITProbePtrTag));
@@ -548,7 +549,7 @@
 #endif
     move(TrustedImmPtr(reinterpret_cast<void*>(function)), x24);
     move(TrustedImmPtr(arg), x25);
-    call(x26, JITProbeTrampolinePtrTag);
+    call(x26, OperationPtrTag);
 
     // ctiMasmProbeTrampoline should have restored every register except for lr and the sp.
     load64(Address(sp, offsetof(LRRestorationRecord, lr)), lr);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp (267866 => 267867)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp	2020-10-02 06:14:25 UTC (rev 267867)
@@ -35,7 +35,8 @@
 
 #if ENABLE(MASM_PROBE)
 
-extern "C" void ctiMasmProbeTrampoline();
+extern "C" JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
+JSC_ANNOTATE_JIT_OPERATION(ctiMasmProbeTrampoline, ctiMasmProbeTrampoline);
 
 using namespace ARMRegisters;
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.cpp (267866 => 267867)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.cpp	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.cpp	2020-10-02 06:14:25 UTC (rev 267867)
@@ -36,7 +36,8 @@
 
 #if ENABLE(MASM_PROBE)
 
-extern "C" void ctiMasmProbeTrampoline();
+extern "C" JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
+JSC_ANNOTATE_JIT_OPERATION(ctiMasmProbeTrampoline, ctiMasmProbeTrampoline);
 
 using namespace MIPSRegisters;
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp (267866 => 267867)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp	2020-10-02 06:14:25 UTC (rev 267867)
@@ -39,7 +39,8 @@
 
 #if ENABLE(MASM_PROBE)
 
-extern "C" void ctiMasmProbeTrampoline();
+extern "C" JSC_DECLARE_JIT_OPERATION(ctiMasmProbeTrampoline, void, ());
+JSC_ANNOTATE_JIT_OPERATION(ctiMasmProbeTrampoline, ctiMasmProbeTrampoline);
 
 // The following are offsets for Probe::State fields accessed by the ctiMasmProbeTrampoline stub.
 

Modified: trunk/Source/_javascript_Core/runtime/JSCPtrTag.h (267866 => 267867)


--- trunk/Source/_javascript_Core/runtime/JSCPtrTag.h	2020-10-02 06:06:28 UTC (rev 267866)
+++ trunk/Source/_javascript_Core/runtime/JSCPtrTag.h	2020-10-02 06:14:25 UTC (rev 267867)
@@ -39,7 +39,6 @@
     v(ExceptionHandlerPtrTag) \
     v(ExecutableMemoryPtrTag) \
     v(JITProbePtrTag) \
-    v(JITProbeTrampolinePtrTag) \
     v(JITProbeExecutorPtrTag) \
     v(JITProbeStackInitializationFunctionPtrTag) \
     v(JITThunkPtrTag) \
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to