authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2025-08-02 17:28:33-07:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-03 10:22:26+02:00
log4d1010d36c69a88a94494f155ba22490d562e3e8
treecfc790b049bffa9b8d7860fa9bbfe77fb0447187
parente98aeeb73fba942c8e061bb8158ed073a7b19e1d

llvm: correctly lower `double_integer` for rv32


1 files changed, 7 insertions(+), 4 deletions(-)

src/codegen/llvm.zig+7-4
...@@ -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 => {