mirror of
https://github.com/ziglang/zig.git
synced 2025-12-14 18:23:12 +00:00
aarch64: circumvent zig0 inference problems
This commit is contained in:
parent
32ad218f5a
commit
179f16904f
@ -3067,7 +3067,12 @@ fn airSaveErrReturnTraceIndex(self: *Self, inst: Air.Inst.Index) !void {
|
|||||||
|
|
||||||
fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void {
|
fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void {
|
||||||
const ty_op = self.air.instructions.items(.data)[inst].ty_op;
|
const ty_op = self.air.instructions.items(.data)[inst].ty_op;
|
||||||
const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: {
|
|
||||||
|
if (self.liveness.isUnused(inst)) {
|
||||||
|
return self.finishAir(inst, .dead, .{ ty_op.operand, .none, .none });
|
||||||
|
}
|
||||||
|
|
||||||
|
const result: MCValue = result: {
|
||||||
const payload_ty = self.air.typeOf(ty_op.operand);
|
const payload_ty = self.air.typeOf(ty_op.operand);
|
||||||
if (!payload_ty.hasRuntimeBits()) {
|
if (!payload_ty.hasRuntimeBits()) {
|
||||||
break :result MCValue{ .immediate = 1 };
|
break :result MCValue{ .immediate = 1 };
|
||||||
@ -3100,6 +3105,7 @@ fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void {
|
|||||||
|
|
||||||
break :result MCValue{ .stack_offset = stack_offset };
|
break :result MCValue{ .stack_offset = stack_offset };
|
||||||
};
|
};
|
||||||
|
|
||||||
return self.finishAir(inst, result, .{ ty_op.operand, .none, .none });
|
return self.finishAir(inst, result, .{ ty_op.operand, .none, .none });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user