From 4d1010d36c69a88a94494f155ba22490d562e3e8 Mon Sep 17 00:00:00 2001 From: David Rubin Date: Sat, 2 Aug 2025 17:28:33 -0700 Subject: [PATCH] llvm: correctly lower `double_integer` for rv32 --- src/codegen/llvm.zig | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 6bec900aec..2e1c390c09 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -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 => {