diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-04-23 18:28:46 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-04-23 18:35:21 -0700 |
| commit | b40a8efb9a72e69cd7e9061fc4c08d5e705b0fbd (patch) | |
| tree | b62377262318b6f6d76a0b75d43dff106e553a2f /src/Compilation.zig | |
| parent | 183ee0965fac6322651666834776d9832cc95ddd (diff) | |
| download | zig-b40a8efb9a72e69cd7e9061fc4c08d5e705b0fbd.tar.gz zig-b40a8efb9a72e69cd7e9061fc4c08d5e705b0fbd.zip | |
stage2: implement `anyframe`, `anyframe->T` and fix assembly
* AstGen: implement `anyframe_literal` and `anyframe_type`.
* Introduce `makeSubBlock` to avoid redundant AstGen code for GenZir
scopes. Allows adding/removing a field without possibility of
accidentally introducing a bug of forgetting to set the new field.
* Add to GenZir `nosuspend_node` and `suspend_node` in preparation for
implementing `suspend` blocks and `nosuspend` blocks.
* AstGen: fix assembly to support clobbers, multiple outputs, and
outputs without `->` syntax.
- `asm` and `asm_volatile` move to `Extended` enum with `small` being
repurposed for a few things. This frees up 2 ZIR tags, 1 of which
is used in this commit and 1 is leftover.
* AstGen: fix `simple_types` incorrectly having multiple conflicting
values for "undefined" and "null".
- Also add "anyframe" to `simple_types`.
* Add `anyframe_type` to type.zig, value.zig and `Zir.Inst.Ref`.
- Also add i128 and u128 types to `Zir.Inst.Ref` and `simple_types`.
* Sema/Zir: Fix incorrect math causing the function body to be messed
up for Extended-encoded functions.
* Zir: support `i32` fields for "extra" payloads.
Diffstat (limited to 'src/Compilation.zig')
0 files changed, 0 insertions, 0 deletions
