| ... | @@ -12210,11 +12210,14 @@ fn lowerFnRetTy(o: *Object, pt: Zcu.PerThread, fn_info: InternPool.Key.FuncType) | ... | @@ -12210,11 +12210,14 @@ fn lowerFnRetTy(o: *Object, pt: Zcu.PerThread, fn_info: InternPool.Key.FuncType) |
| 12210 | }, | 12210 | }, |
| 12211 | .riscv64_lp64, .riscv32_ilp32 => switch (riscv_c_abi.classifyType(return_type, zcu)) { | 12211 | .riscv64_lp64, .riscv32_ilp32 => switch (riscv_c_abi.classifyType(return_type, zcu)) { |
| 12212 | .memory => return .void, | 12212 | .memory => return .void, |
| 12213 | .integer => { | 12213 | .integer => return o.builder.intType(@intCast(return_type.bitSize(zcu))), |
| 12214 | return o.builder.intType(@intCast(return_type.bitSize(zcu))); | | |
| 12215 | }, | | |
| 12216 | .double_integer => { | 12214 | .double_integer => { |
| 12217 | return o.builder.structType(.normal, &.{ .i64, .i64 }); | 12215 | const integer: Builder.Type = switch (zcu.getTarget().cpu.arch) { |
| | 12216 | .riscv64 => .i64, |
| | 12217 | .riscv32 => .i32, |
| | 12218 | else => unreachable, |
| | 12219 | }; |
| | 12220 | return o.builder.structType(.normal, &.{ integer, integer }); |
| 12218 | }, | 12221 | }, |
| 12219 | .byval => return o.lowerType(pt, return_type), | 12222 | .byval => return o.lowerType(pt, return_type), |
| 12220 | .fields => { | 12223 | .fields => { |