llvm: correctly lower double_integer for rv32

This commit is contained in:
David Rubin
2025-08-02 17:28:33 -07:00
committed by Alex Rønne Petersen
parent e98aeeb73f
commit 4d1010d36c

View File

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