| ... | @@ -2122,16 +2122,13 @@ fn airRetLoad(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { | ... | @@ -2122,16 +2122,13 @@ fn airRetLoad(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { |
| 2122 | const un_op = func.air.instructions.items(.data)[inst].un_op; | 2122 | const un_op = func.air.instructions.items(.data)[inst].un_op; |
| 2123 | const operand = try func.resolveInst(un_op); | 2123 | const operand = try func.resolveInst(un_op); |
| 2124 | const ret_ty = func.air.typeOf(un_op).childType(); | 2124 | const ret_ty = func.air.typeOf(un_op).childType(); |
| | 2125 | |
| | 2126 | const fn_info = func.decl.ty.fnInfo(); |
| 2125 | if (!ret_ty.hasRuntimeBitsIgnoreComptime()) { | 2127 | if (!ret_ty.hasRuntimeBitsIgnoreComptime()) { |
| 2126 | if (ret_ty.isError()) { | 2128 | if (ret_ty.isError()) { |
| 2127 | try func.addImm32(0); | 2129 | try func.addImm32(0); |
| 2128 | } else { | | |
| 2129 | return func.finishAir(inst, .none, &.{}); | | |
| 2130 | } | 2130 | } |
| 2131 | } | 2131 | } else if (!firstParamSRet(fn_info.cc, fn_info.return_type, func.target)) { |
| 2132 | | | |
| 2133 | const fn_info = func.decl.ty.fnInfo(); | | |
| 2134 | if (!firstParamSRet(fn_info.cc, fn_info.return_type, func.target)) { | | |
| 2135 | // leave on the stack | 2132 | // leave on the stack |
| 2136 | _ = try func.load(operand, ret_ty, 0); | 2133 | _ = try func.load(operand, ret_ty, 0); |
| 2137 | } | 2134 | } |