authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-03-03 18:40:16+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-03-03 18:40:16+01:00
logc413ac100fa5a4cece5702d3afb6b0898e9c6214
tree0f9952ece962a66a1365bb62e4212c77f2af1b63
parent1024332adc88928299dfc07426f11624ae8ba18b

codegen: refactor generating Int as immediate where appropriate


1 files changed, 6 insertions(+), 5 deletions(-)

src/codegen.zig+6-5
......@@ -1051,11 +1051,12 @@ pub fn genTypedValue(
10511051 },
10521052 .Int => {
10531053 const info = typed_value.ty.intInfo(target);
1054 if (info.bits <= ptr_bits and info.signedness == .signed) {
1055 return GenResult.mcv(.{ .immediate = @bitCast(u64, typed_value.val.toSignedInt(target)) });
1056 }
1057 if (!(info.bits > ptr_bits or info.signedness == .signed)) {
1058 return GenResult.mcv(.{ .immediate = typed_value.val.toUnsignedInt(target) });
1054 if (info.bits <= ptr_bits) {
1055 const unsigned = switch (info.signedness) {
1056 .signed => @bitCast(u64, typed_value.val.toSignedInt(target)),
1057 .unsigned => typed_value.val.toUnsignedInt(target),
1058 };
1059 return GenResult.mcv(.{ .immediate = unsigned });
10591060 }
10601061 },
10611062 .Bool => {