diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-01-26 16:14:57 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-01-26 16:14:57 +0100 |
| commit | 9f224ebd9a4f26d0dc5b0937d3d5df8fe78f1c9d (patch) | |
| tree | e3bbcb01c6c19953004d0a28efc789a5015e9f4a /src/register_manager.zig | |
| parent | 075e2eaaafb1038ce623713d9dc4947171d5c255 (diff) | |
| download | zig-9f224ebd9a4f26d0dc5b0937d3d5df8fe78f1c9d.tar.gz zig-9f224ebd9a4f26d0dc5b0937d3d5df8fe78f1c9d.zip | |
stage2: add zero- and sign-extend moves to x86_64
* remove `LoweringError` error set from `Emit.zig` - it actually
was less than helpful; it's better to either not throw an error
since there can be instructions with mismatching operand sizes
such as `movsx` or assert on a by instruction-basis. Currently,
let's just pass through and see how we fare.
* when moving integers into registers, check for signedness and move
with zero- or sign-extension if source operand is smaller than 8
bytes. The destination operand is always assumed to be full-width,
i.e., 8 bytes.
* clean up `airTrunc` a little to match the rest of CodeGen inst
implementations.
Diffstat (limited to 'src/register_manager.zig')
0 files changed, 0 insertions, 0 deletions
