[all-commits] [llvm/llvm-project] 08bba6: [WebAssembly] Support binary generation for new EH...
Heejin Ahn via All-commits
all-commits at lists.llvm.org
Tue Sep 17 14:58:40 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3
https://github.com/llvm/llvm-project/commit/08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2024-09-17 (Tue, 17 Sep 2024)
Changed paths:
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
M llvm/test/CodeGen/WebAssembly/exception.ll
M llvm/test/MC/WebAssembly/eh-assembly.s
Log Message:
-----------
[WebAssembly] Support binary generation for new EH (#109027)
This adds support for binary generation for the new EH proposal.
So far the only case that we emitted variable immediate operands in
binary has been `br_table`'s destinations. (Other `variable_ops` uses in
TableGen files are register operands, such as the operands of `call`, so
they don't get emitted in binary as a part of the same instruction.)
With this PR, variable immediate operands can include `try_table`'s
operands:
- The number of of catch clauses
- catch clauses sub-opcodes
- `catch`: 0x00
- `catch_ref`: 0x01
- `catch_all`: 0x02
- `catch_all_ref`: 0x03
- catch clauses' destinations
With `try_table`, we now have variable expr operands for `try_table`'s
catch clauses' tags. We treat their fixups in the same way we do for
tags in other instructions such as in `throw`.
Diff without whitespace will be easier to view.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list