| author | |
| committer | |
| log | 2e8351cc9e30c28a9415821ed99d664b76eb2062 |
| tree | 658e247e459db49aea5ac3b3016382e2c8294310 |
| parent | c9db8878006fe53eb438bc6a6f2d2416cc5ef412 |
6 files changed, 4 insertions(+), 10 deletions(-)
src/arch/riscv64/CodeGen.zig+4-4| ... | @@ -4937,7 +4937,7 @@ fn genCall( | ... | @@ -4937,7 +4937,7 @@ fn genCall( |
| 4937 | if (func.mod.pic) { | 4937 | if (func.mod.pic) { |
| 4938 | return func.fail("TODO: genCall pic", .{}); | 4938 | return func.fail("TODO: genCall pic", .{}); |
| 4939 | } else { | 4939 | } else { |
| 4940 | try func.genSetReg(Type.u64, .ra, .{ .load_symbol = .{ .sym = sym_index } }); | 4940 | try func.genSetReg(Type.u64, .ra, .{ .lea_symbol = .{ .sym = sym_index } }); |
| 4941 | _ = try func.addInst(.{ | 4941 | _ = try func.addInst(.{ |
| 4942 | .tag = .jalr, | 4942 | .tag = .jalr, |
| 4943 | .data = .{ .i_type = .{ | 4943 | .data = .{ .i_type = .{ |
| ... | @@ -6120,7 +6120,7 @@ fn airAsm(func: *Func, inst: Air.Inst.Index) !void { | ... | @@ -6120,7 +6120,7 @@ fn airAsm(func: *Func, inst: Air.Inst.Index) !void { |
| 6120 | arg_map.get(op_str["%[".len .. mod_index orelse op_str.len - "]".len]) orelse | 6120 | arg_map.get(op_str["%[".len .. mod_index orelse op_str.len - "]".len]) orelse |
| 6121 | return func.fail("no matching constraint: '{s}'", .{op_str}) | 6121 | return func.fail("no matching constraint: '{s}'", .{op_str}) |
| 6122 | ]) { | 6122 | ]) { |
| 6123 | .load_symbol => |sym_off| if (mem.eql(u8, modifier, "plt")) blk: { | 6123 | .lea_symbol => |sym_off| if (mem.eql(u8, modifier, "plt")) blk: { |
| 6124 | assert(sym_off.off == 0); | 6124 | assert(sym_off.off == 0); |
| 6125 | break :blk .{ .sym = sym_off }; | 6125 | break :blk .{ .sym = sym_off }; |
| 6126 | } else return func.fail("invalid modifier: '{s}'", .{modifier}), | 6126 | } else return func.fail("invalid modifier: '{s}'", .{modifier}), |
| ... | @@ -6388,7 +6388,7 @@ fn genCopy(func: *Func, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { | ... | @@ -6388,7 +6388,7 @@ fn genCopy(func: *Func, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { |
| 6388 | ty, | 6388 | ty, |
| 6389 | src_mcv, | 6389 | src_mcv, |
| 6390 | ), | 6390 | ), |
| 6391 | .load_tlv => { | 6391 | .load_symbol, .load_tlv => { |
| 6392 | const addr_reg, const addr_lock = try func.allocReg(.int); | 6392 | const addr_reg, const addr_lock = try func.allocReg(.int); |
| 6393 | defer func.register_manager.unlockReg(addr_lock); | 6393 | defer func.register_manager.unlockReg(addr_lock); |
| 6394 | 6394 | ||
| ... | @@ -6433,7 +6433,7 @@ fn genCopy(func: *Func, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { | ... | @@ -6433,7 +6433,7 @@ fn genCopy(func: *Func, ty: Type, dst_mcv: MCValue, src_mcv: MCValue) !void { |
| 6433 | part_disp += @intCast(dst_ty.abiSize(func.pt)); | 6433 | part_disp += @intCast(dst_ty.abiSize(func.pt)); |
| 6434 | } | 6434 | } |
| 6435 | }, | 6435 | }, |
| 6436 | else => return func.fail("TODO: genCopy to {s} from {s}", .{ @tagName(dst_mcv), @tagName(src_mcv) }), | 6436 | else => return std.debug.panic("TODO: genCopy to {s} from {s}", .{ @tagName(dst_mcv), @tagName(src_mcv) }), |
| 6437 | } | 6437 | } |
| 6438 | } | 6438 | } |
| 6439 | 6439 |
test/behavior/basic.zig-1| ... | @@ -733,7 +733,6 @@ test "extern variable with non-pointer opaque type" { | ... | @@ -733,7 +733,6 @@ test "extern variable with non-pointer opaque type" { |
| 733 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 733 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 734 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; | 734 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; |
| 735 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO | 735 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO |
| 736 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 737 | 736 | ||
| 738 | @export(var_to_export, .{ .name = "opaque_extern_var" }); | 737 | @export(var_to_export, .{ .name = "opaque_extern_var" }); |
| 739 | try expect(@as(*align(1) u32, @ptrCast(&opaque_extern_var)).* == 42); | 738 | try expect(@as(*align(1) u32, @ptrCast(&opaque_extern_var)).* == 42); |
test/behavior/export_builtin.zig-2| ... | @@ -48,7 +48,6 @@ test "exporting using field access" { | ... | @@ -48,7 +48,6 @@ test "exporting using field access" { |
| 48 | test "exporting comptime-known value" { | 48 | test "exporting comptime-known value" { |
| 49 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; | 49 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; |
| 50 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 50 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 51 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 52 | if (builtin.zig_backend == .stage2_x86_64 and | 51 | if (builtin.zig_backend == .stage2_x86_64 and |
| 53 | (builtin.target.ofmt != .elf and | 52 | (builtin.target.ofmt != .elf and |
| 54 | builtin.target.ofmt != .macho and | 53 | builtin.target.ofmt != .macho and |
| ... | @@ -68,7 +67,6 @@ test "exporting comptime-known value" { | ... | @@ -68,7 +67,6 @@ test "exporting comptime-known value" { |
| 68 | test "exporting comptime var" { | 67 | test "exporting comptime var" { |
| 69 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; | 68 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; |
| 70 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 69 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 71 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 72 | if (builtin.zig_backend == .stage2_x86_64 and | 70 | if (builtin.zig_backend == .stage2_x86_64 and |
| 73 | (builtin.target.ofmt != .elf and | 71 | (builtin.target.ofmt != .elf and |
| 74 | builtin.target.ofmt != .macho and | 72 | builtin.target.ofmt != .macho and |
test/behavior/extern.zig-1| ... | @@ -7,7 +7,6 @@ test "anyopaque extern symbol" { | ... | @@ -7,7 +7,6 @@ test "anyopaque extern symbol" { |
| 7 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; | 7 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; |
| 8 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; | 8 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; |
| 9 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | 9 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 10 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 11 | 10 | ||
| 12 | const a = @extern(*anyopaque, .{ .name = "a_mystery_symbol" }); | 11 | const a = @extern(*anyopaque, .{ .name = "a_mystery_symbol" }); |
| 13 | const b: *i32 = @alignCast(@ptrCast(a)); | 12 | const b: *i32 = @alignCast(@ptrCast(a)); |
test/behavior/fn.zig-1| ... | @@ -429,7 +429,6 @@ test "implicit cast function to function ptr" { | ... | @@ -429,7 +429,6 @@ test "implicit cast function to function ptr" { |
| 429 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 429 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 430 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | 430 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 431 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; | 431 | if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; |
| 432 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 433 | 432 | ||
| 434 | const S1 = struct { | 433 | const S1 = struct { |
| 435 | export fn someFunctionThatReturnsAValue() c_int { | 434 | export fn someFunctionThatReturnsAValue() c_int { |
test/behavior/pointers.zig-1| ... | @@ -45,7 +45,6 @@ test "pointer-integer arithmetic" { | ... | @@ -45,7 +45,6 @@ test "pointer-integer arithmetic" { |
| 45 | 45 | ||
| 46 | test "pointer subtraction" { | 46 | test "pointer subtraction" { |
| 47 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 47 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 48 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 49 | 48 | ||
| 50 | { | 49 | { |
| 51 | const a: *u8 = @ptrFromInt(100); | 50 | const a: *u8 = @ptrFromInt(100); |