[webkit-changes] [WebKit/WebKit] 5d2309: Fix JITless Wasm to JS stack parameter handling.
Daniel Liu
noreply at github.com
Mon Aug 19 09:09:13 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5d23096ae0a41ec4503ef776e1a4a93ac7ce51db
https://github.com/WebKit/WebKit/commit/5d23096ae0a41ec4503ef776e1a4a93ac7ce51db
Author: Daniel Liu <danlliu at umich.edu>
Date: 2024-08-19 (Mon, 19 Aug 2024)
Changed paths:
M JSTests/wasm/stress/cc-int-to-int-memory.js
A JSTests/wasm/stress/cc-parameters-overwhelming-to-js.js
M Source/JavaScriptCore/wasm/WasmOperations.cpp
Log Message:
-----------
Fix JITless Wasm to JS stack parameter handling.
https://bugs.webkit.org/show_bug.cgi?id=278188
rdar://133985209
Reviewed by Yusuke Suzuki.
Previously, the Wasm to JS operation used isStackArgument. However, since the calling convention is reversed (Wasm is the caller), it is no longer a stack argument, and is just a stack location, meaning that we need to use isStack.
* JSTests/wasm/stress/cc-int-to-int-memory.js:
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.memory.1.data.i32.const.0.string_appeared_here.func.test.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.let.wat2.module.type.sig_test.func.param.i32.result.i32.import.string_appeared_here.string_appeared_here.table.t.1.funcref.import.string_appeared_here.string_appeared_here.func.test.param.x.i32.result.i32.import.string_appeared_here.string_appeared_here.func.callee.param.x.i32.result.i32.memory.1.data.i32.const.0.string_appeared_here.func.test2.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.func.test3.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.func.export.string_appeared_here.param.x.i32.result.i32.i32.load.i32.const.0.call.test.i32.const.1.i32.load.i32.const.0.i32.add.i32.add.func.export.string_appeared_here.param.x.i32.result.i32.i32.load.i32.const.0.call.test.i32.const.1.i32.load.i32.const.0.i32.const.5.call.callee.i32.load.i32.const.0.i32.add.i32.add.i32.add.i32.add.async test.callee):
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.memory.1.data.i32.const.0.string_appeared_here.func.test.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.let.wat2.module.type.sig_test.func.param.i32.result.i32.import.string_appeared_here.string_appeared_here.table.t.1.funcref.import.string_appeared_here.string_appeared_here.func.test.param.x.i32.result.i32.import.string_appeared_here.string_appeared_here.func.callee.param.x.i32.result.i32.memory.1.data.i32.const.0.string_appeared_here.func.test2.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.func.test3.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.func.export.string_appeared_here.param.x.i32.result.i32.i32.load.i32.const.0.call.test.i32.const.1.i32.load.i32.const.0.i32.add.i32.add.func.export.string_appeared_here.param.x.i32.result.i32.i32.load.i32.const.0.call.test.i32.const.1.i32.load.i32.const.0.i32.const.5.call.callee.i32.load.i32.const.0.i32.add.i32.add.i32.add.i32.add.async test):
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.memory.1.data.i32.const.0.string_appeared_here.func.test.export.string_appeared_here.param.x.i32.result.i32.i32.add.local.x.i32.load.i32.const.0.async test): Deleted.
* JSTests/wasm/stress/cc-parameters-overwhelming-to-js.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.type.sig_test.func.param.i32.result.i32.import.string_appeared_here.string_appeared_here.func.callee.param.a.i32.param.b.i32.param.c.i32.param.d.i32.param.e.i32.param.f.i32.param.g.i32.param.h.i32.param.i.i32.param.j.i32.param.k.i32.param.l.i32.param.m.i32.param.n.i32.param.o.i32.param.p.i32.result.i32.func.test.export.string_appeared_here.param.x.i32.result.i32.i32.const.0.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.call.callee.callee):
(async test):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
Canonical link: https://commits.webkit.org/282429@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