authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-07-31 14:00:46-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-31 16:57:30-07:00
logc08effc20abe2595ba5c83e25b78c274ec9c58ec
tree283522a4237c04638d8d4fb603da55c08111c17e
parenta69d403cb2c82ce6257bfa1ee7eba52f895c14e7

riscv: implement non-pow2 indirect loads


2 files changed, 4 insertions(+), 5 deletions(-)

src/arch/riscv64/CodeGen.zig+4-4
...@@ -6855,10 +6855,10 @@ fn genSetReg(func: *Func, ty: Type, reg: Register, src_mcv: MCValue) InnerError!...@@ -6855,10 +6855,10 @@ fn genSetReg(func: *Func, ty: Type, reg: Register, src_mcv: MCValue) InnerError!
6855 else => return std.debug.panic("TODO: genSetReg for float size {d}", .{abi_size}),6855 else => return std.debug.panic("TODO: genSetReg for float size {d}", .{abi_size}),
6856 },6856 },
6857 .int => switch (abi_size) {6857 .int => switch (abi_size) {
6858 1 => .lb,6858 1...1 => .lb,
6859 2 => .lh,6859 2...2 => .lh,
6860 4 => .lw,6860 3...4 => .lw,
6861 8 => .ld,6861 5...8 => .ld,
6862 else => return std.debug.panic("TODO: genSetReg for int size {d}", .{abi_size}),6862 else => return std.debug.panic("TODO: genSetReg for int size {d}", .{abi_size}),
6863 },6863 },
6864 .vector => {6864 .vector => {
test/behavior/defer.zig-1
...@@ -94,7 +94,6 @@ test "mixing normal and error defers" {...@@ -94,7 +94,6 @@ test "mixing normal and error defers" {
94 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO94 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
95 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO95 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
96 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO96 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
97 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
9897
99 try expect(runSomeErrorDefers(true) catch unreachable);98 try expect(runSomeErrorDefers(true) catch unreachable);
100 try expect(result[0] == 'c');99 try expect(result[0] == 'c');