Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 276a1470de2093bdfdc48b7575e2d349db856b27
https://github.com/WebKit/WebKit/commit/276a1470de2093bdfdc48b7575e2d349db856b27
Author: Yusuke Suzuki <[email protected]>
Date: 2025-09-21 (Sun, 21 Sep 2025)
Changed paths:
M Source/JavaScriptCore/b3/B3CheckSpecial.cpp
M Source/JavaScriptCore/b3/B3StackmapGenerationParams.cpp
M Source/JavaScriptCore/b3/B3StackmapGenerationParams.h
M
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp
M Source/JavaScriptCore/b3/air/AirCustom.cpp
M Source/JavaScriptCore/b3/air/AirGenerate.cpp
M Source/JavaScriptCore/b3/air/AirGenerationContext.h
M Source/JavaScriptCore/interpreter/StackVisitor.cpp
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmOperations.h
M Source/JavaScriptCore/wasm/WasmThunks.cpp
M Source/JavaScriptCore/wasm/WasmThunks.h
Log Message:
-----------
[JSC] OMG exception throwing thunk should be called instead of jumped
https://bugs.webkit.org/show_bug.cgi?id=299248
rdar://161021356
Reviewed by Justin Michaud.
This patch removes the last remaining reliance to CallSiteIndex on the
stack on OMG. Previously we jump to the thunk and thunk calls an
operation which throws exceptions. But this had a problem that PC
becomes thunk's address and StackVisitor cannot get the CallSiteIndex of
OMG since this thunk's PC is not OMG's code region. Previously, we were
still placing CallSiteIndex just for this pattern.
Let's make this thunk called instead of jumped. And extracting PC of OMG
and set it to operation. So StackVisitor can get CallSiteIndex for OMG
by using this PC.
* Source/JavaScriptCore/b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::generate):
* Source/JavaScriptCore/b3/B3StackmapGenerationParams.cpp:
(JSC::B3::StackmapGenerationParams::origin const):
* Source/JavaScriptCore/b3/B3StackmapGenerationParams.h:
(JSC::B3::StackmapGenerationParams::addLatePath const):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
* Source/JavaScriptCore/b3/air/AirCustom.cpp:
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
* Source/JavaScriptCore/b3/air/AirGenerate.cpp:
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):
* Source/JavaScriptCore/b3/air/AirGenerationContext.h:
* Source/JavaScriptCore/interpreter/StackVisitor.cpp:
(JSC::StackVisitor::readInlinableNativeCalleeFrame):
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::slow_path_wasm_throw_exception):
(JSC::IPInt::slow_path_wasm_unwind_exception):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::OMGIRGenerator::OMGIRGenerator):
(JSC::Wasm::OMGIRGenerator::emitExceptionCheck):
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp:
(JSC::Wasm::OMGIRGenerator::OMGIRGenerator):
(JSC::Wasm::OMGIRGenerator::emitExceptionCheck):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmOperations.h:
* Source/JavaScriptCore/wasm/WasmThunks.cpp:
(JSC::Wasm::throwExceptionFromOMGThunkGenerator):
* Source/JavaScriptCore/wasm/WasmThunks.h:
Canonical link: https://commits.webkit.org/300298@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes