diff options
author | Heejin Ahn <aheejin@gmail.com> | 2024-09-17 14:58:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-17 14:58:19 -0700 |
commit | 08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3 (patch) | |
tree | fa70c69f1da07e0ed1e8bcd8afc4ff7a0c72043e /clang/lib/CodeGen | |
parent | 38333f4161037d2587157e36b5cb994d1b2c36e5 (diff) | |
download | llvm-08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3.zip llvm-08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3.tar.gz llvm-08bba6503b918c97d9d1a0cde97f4b3c64d5f2c3.tar.bz2 |
[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.
Diffstat (limited to 'clang/lib/CodeGen')
0 files changed, 0 insertions, 0 deletions