diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-03-03 18:40:16 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2023-03-03 18:40:16 +0100 |
| commit | c413ac100fa5a4cece5702d3afb6b0898e9c6214 (patch) | |
| tree | 0f9952ece962a66a1365bb62e4212c77f2af1b63 /src/codegen.zig | |
| parent | 1024332adc88928299dfc07426f11624ae8ba18b (diff) | |
| download | zig-c413ac100fa5a4cece5702d3afb6b0898e9c6214.tar.gz zig-c413ac100fa5a4cece5702d3afb6b0898e9c6214.zip | |
codegen: refactor generating Int as immediate where appropriate
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 245745d6f6..7e7f34f992 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -1051,11 +1051,12 @@ pub fn genTypedValue( }, .Int => { const info = typed_value.ty.intInfo(target); - if (info.bits <= ptr_bits and info.signedness == .signed) { - return GenResult.mcv(.{ .immediate = @bitCast(u64, typed_value.val.toSignedInt(target)) }); - } - if (!(info.bits > ptr_bits or info.signedness == .signed)) { - return GenResult.mcv(.{ .immediate = typed_value.val.toUnsignedInt(target) }); + if (info.bits <= ptr_bits) { + const unsigned = switch (info.signedness) { + .signed => @bitCast(u64, typed_value.val.toSignedInt(target)), + .unsigned => typed_value.val.toUnsignedInt(target), + }; + return GenResult.mcv(.{ .immediate = unsigned }); } }, .Bool => { |
