Skip to content

Commit 4d1010d

Browse files
Rexicon226alexrp
authored andcommitted
llvm: correctly lower double_integer for rv32
1 parent e98aeeb commit 4d1010d

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/codegen/llvm.zig

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12210,11 +12210,14 @@ fn lowerFnRetTy(o: *Object, pt: Zcu.PerThread, fn_info: InternPool.Key.FuncType)
1221012210
},
1221112211
.riscv64_lp64, .riscv32_ilp32 => switch (riscv_c_abi.classifyType(return_type, zcu)) {
1221212212
.memory => return .void,
12213-
.integer => {
12214-
return o.builder.intType(@intCast(return_type.bitSize(zcu)));
12215-
},
12213+
.integer => return o.builder.intType(@intCast(return_type.bitSize(zcu))),
1221612214
.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 });
1221812221
},
1221912222
.byval => return o.lowerType(pt, return_type),
1222012223
.fields => {

0 commit comments

Comments
 (0)