[webkit-changes] [WebKit/WebKit] 7bdb70: [JSC] Add WasmBBQDisassembler
Yusuke Suzuki
noreply at github.com
Sat Mar 18 23:41:30 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7bdb70dd637f3e6c3b6c7739d302f2b9ea5b2cc0
https://github.com/WebKit/WebKit/commit/7bdb70dd637f3e6c3b6c7739d302f2b9ea5b2cc0
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-03-18 (Sat, 18 Mar 2023)
Changed paths:
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/Sources.txt
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.h
A Source/JavaScriptCore/wasm/WasmBBQDisassembler.cpp
A Source/JavaScriptCore/wasm/WasmBBQDisassembler.h
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
Log Message:
-----------
[JSC] Add WasmBBQDisassembler
https://bugs.webkit.org/show_bug.cgi?id=254128
rdar://106906971
Reviewed by Mark Lam.
This patch adds better disassembler support to new WasmBBQJIT (since previous old BBQ had good disassembler. So now it was missing).
It dumps code with Wasm Opcode information as follows.
...
<128> 0x10d000080: b.pl 0x10d00044c -> <1100>
[ 0x3] Block
[ 0x5] Block
[ 0x7] GetLocal
<132> 0x10d000084: ldur w0, [fp, #-12]
[ 0x9] I32Const
[ 0xb] I32Add
<136> 0x10d000088: add w0, w0, #16
[ 0xc] TeeLocal
<140> 0x10d00008c: stur w0, [fp, #-20]
<144> 0x10d000090: ldur w0, [fp, #-20]
[ 0xe] I32Load
<148> 0x10d000094: ldr w0, [x22, w0, uxtw]
[ 0x11] TeeLocal
<152> 0x10d000098: stur w0, [fp, #-16]
<156> 0x10d00009c: ldur w0, [fp, #-16]
[ 0x13] BrIf
<160> 0x10d0000a0: mov x8, x0
<164> 0x10d0000a4: cbz w8, 0x10d0000ac -> <172>
<168> 0x10d0000a8: b 0x10d0000e4 -> <228>
...
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.h:
* Source/JavaScriptCore/wasm/WasmBBQDisassembler.cpp: Added.
(JSC::Wasm::BBQDisassembler::dump):
(JSC::Wasm::BBQDisassembler::dumpHeader):
(JSC::Wasm::BBQDisassembler::dumpVectorForInstructions):
(JSC::Wasm::BBQDisassembler::dumpForInstructions):
(JSC::Wasm::BBQDisassembler::dumpDisassembly):
* Source/JavaScriptCore/wasm/WasmBBQDisassembler.h: Added.
(JSC::Wasm::BBQDisassembler::setStartOfCode):
(JSC::Wasm::BBQDisassembler::setOpcode):
(JSC::Wasm::BBQDisassembler::setEndOfOpcode):
(JSC::Wasm::BBQDisassembler::setEndOfCode):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::BBQJIT):
(JSC::Wasm::BBQJIT::endTopLevel):
(JSC::Wasm::BBQJIT::willParseOpcode):
(JSC::Wasm::BBQJIT::finalize):
(JSC::Wasm::BBQJIT::takeDisassembler):
(JSC::Wasm::parseAndCompileBBQ):
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::dumpDisassembly):
Canonical link: https://commits.webkit.org/261835@main
More information about the webkit-changes
mailing list