mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
stage2 ARM: implement load for stack_offset + stack_argument_offset
1 more behavior test passing
This commit is contained in:
parent
d48e4245b6
commit
0d2f4d0654
@ -1483,17 +1483,14 @@ fn load(self: *Self, dst_mcv: MCValue, ptr: MCValue, ptr_ty: Type) InnerError!vo
|
|||||||
else => return self.fail("TODO load from register into {}", .{dst_mcv}),
|
else => return self.fail("TODO load from register into {}", .{dst_mcv}),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.memory => |addr| {
|
.memory,
|
||||||
|
.stack_offset,
|
||||||
|
.stack_argument_offset,
|
||||||
|
=> {
|
||||||
const reg = try self.register_manager.allocReg(null, &.{});
|
const reg = try self.register_manager.allocReg(null, &.{});
|
||||||
try self.genSetReg(ptr_ty, reg, .{ .memory = addr });
|
try self.genSetReg(ptr_ty, reg, ptr);
|
||||||
try self.load(dst_mcv, .{ .register = reg }, ptr_ty);
|
try self.load(dst_mcv, .{ .register = reg }, ptr_ty);
|
||||||
},
|
},
|
||||||
.stack_offset => {
|
|
||||||
return self.fail("TODO implement loading from MCValue.stack_offset", .{});
|
|
||||||
},
|
|
||||||
.stack_argument_offset => {
|
|
||||||
return self.fail("TODO implement loading from MCValue.stack_argument_offset", .{});
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ test {
|
|||||||
if (builtin.zig_backend != .stage2_x86_64) {
|
if (builtin.zig_backend != .stage2_x86_64) {
|
||||||
// Tests that pass for stage1, llvm backend, C backend, wasm backend, and arm backend.
|
// Tests that pass for stage1, llvm backend, C backend, wasm backend, and arm backend.
|
||||||
_ = @import("behavior/bool.zig");
|
_ = @import("behavior/bool.zig");
|
||||||
|
_ = @import("behavior/bugs/655.zig");
|
||||||
|
|
||||||
if (builtin.zig_backend != .stage2_arm and builtin.zig_backend != .stage2_x86_64) {
|
if (builtin.zig_backend != .stage2_arm and builtin.zig_backend != .stage2_x86_64) {
|
||||||
// Tests that pass for stage1, llvm backend, C backend, wasm backend.
|
// Tests that pass for stage1, llvm backend, C backend, wasm backend.
|
||||||
@ -26,7 +27,6 @@ test {
|
|||||||
_ = @import("behavior/basic.zig");
|
_ = @import("behavior/basic.zig");
|
||||||
_ = @import("behavior/bitcast.zig");
|
_ = @import("behavior/bitcast.zig");
|
||||||
_ = @import("behavior/bugs/624.zig");
|
_ = @import("behavior/bugs/624.zig");
|
||||||
_ = @import("behavior/bugs/655.zig");
|
|
||||||
_ = @import("behavior/bugs/704.zig");
|
_ = @import("behavior/bugs/704.zig");
|
||||||
_ = @import("behavior/bugs/1486.zig");
|
_ = @import("behavior/bugs/1486.zig");
|
||||||
_ = @import("behavior/bugs/2692.zig");
|
_ = @import("behavior/bugs/2692.zig");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user