[webkit-changes] [WebKit/WebKit] fb3a27: Implement full Wasm calling convention in IPInt
Daniel Liu
noreply at github.com
Tue Sep 24 15:46:27 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fb3a2765f7892b78721a609c4d653bcf54d0d2a8
https://github.com/WebKit/WebKit/commit/fb3a2765f7892b78721a609c4d653bcf54d0d2a8
Author: Daniel Liu <danlliu at umich.edu>
Date: 2024-09-24 (Tue, 24 Sep 2024)
Changed paths:
A JSTests/wasm/ipint-tests/ipint-test-call-many-f32.js
A JSTests/wasm/ipint-tests/ipint-test-multiret32.js
M Source/JavaScriptCore/llint/InPlaceInterpreter.asm
M Source/JavaScriptCore/llint/InPlaceInterpreter.h
M Source/JavaScriptCore/llint/InPlaceInterpreter32_64.asm
M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm
M Source/JavaScriptCore/wasm/WasmCallee.cpp
M Source/JavaScriptCore/wasm/WasmCallee.h
M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp
M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h
M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
Log Message:
-----------
Implement full Wasm calling convention in IPInt
https://bugs.webkit.org/show_bug.cgi?id=280230
rdar://problem/136536169
Reviewed by Yusuke Suzuki.
Previously, IPInt did not support a significant range of return signatures, due to
no stack returns being supported. This patch updates IPInt to support returning on
the stack. Additionally, the argument and return value bytecodes are generated
from `wasmCallingConvention()`, ensuring that it is consistent with the rest of
JSC's Wasm implementations.
* JSTests/wasm/ipint-tests/ipint-test-call-many-f32.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.param.f32.f32.f32.f32.f32.f32.f32.f32.f32.f32.result.f32.local.8.return.async test):
* JSTests/wasm/ipint-tests/ipint-test-multiret32.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.export.string_appeared_here.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.result.i32.i32.const.1.i32.const.2.i32.const.3.i32.const.4.i32.const.5.i32.const.6.i32.const.7.i32.const.8.i32.const.9.i32.const.10.i32.const.11.i32.const.12.i32.const.13.i32.const.14.i32.const.15.i32.const.16.return.func.export.string_appeared_here.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.result.f32.f32.const.1.f32.const.2.f32.const.3.f32.const.4.f32.const.5.f32.const.6.f32.const.7.f32.const.8.f32.const.9.f32.const.10.f32.const.11.f32.const.12.f32.const.13.f32.const.14.f32.const.15.f32.const.16.return.async test):
* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:
* Source/JavaScriptCore/llint/InPlaceInterpreter.h:
* Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
(JSC::Wasm::IPIntCallee::IPIntCallee):
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp:
(JSC::Wasm::FunctionIPIntMetadataGenerator::addReturnData):
* Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h:
* Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
(JSC::Wasm::IPIntGenerator::addArguments):
(JSC::Wasm::IPIntGenerator::addEndToUnreachable):
Canonical link: https://commits.webkit.org/284188@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list