diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2024-02-06 23:36:35 +0100 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2024-02-12 05:25:07 +0100 |
| commit | 5a62f265795249e099ff0f8b036a5b899e540c86 (patch) | |
| tree | 83fd8948380c35496990aa960b1aa049125794e8 /src/arch | |
| parent | f2a62d25fc722da9dd4fb09ec614e278271442b9 (diff) | |
| download | zig-5a62f265795249e099ff0f8b036a5b899e540c86.tar.gz zig-5a62f265795249e099ff0f8b036a5b899e540c86.zip | |
x86_64: fix packed load
Diffstat (limited to 'src/arch')
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 5a961af5bd..d6a295cf27 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -6993,7 +6993,7 @@ fn packedLoad(self: *Self, dst_mcv: MCValue, ptr_ty: Type, ptr_mcv: MCValue) Inn if (val_abi_size > 8) return self.fail("TODO implement packed load of {}", .{val_ty.fmt(mod)}); - const limb_abi_size: u32 = @min(val_abi_size, 8); + const limb_abi_size: u31 = @min(val_abi_size, 8); const limb_abi_bits = limb_abi_size * 8; const val_byte_off: i32 = @intCast(ptr_bit_off / limb_abi_bits * limb_abi_size); const val_bit_off = ptr_bit_off % limb_abi_bits; @@ -7041,7 +7041,7 @@ fn packedLoad(self: *Self, dst_mcv: MCValue, ptr_ty: Type, ptr_mcv: MCValue) Inn .base = .{ .reg = ptr_reg }, .mod = .{ .rm = .{ .size = Memory.Size.fromSize(val_abi_size), - .disp = val_byte_off + 1, + .disp = val_byte_off + limb_abi_size, } }, }); try self.spillEflagsIfOccupied(); |
