authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-16 14:14:20+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-19 19:21:33+01:00
log289b2f82c3026ef17047dbe565693b15e2b84c81
tree19166598086a9e5fe507e55d1a355452ba8a116a
parent28cb8872758fcbfbf3c366944a4866de3c5c758a
signaturelock-open Commit is signed but in an unrecognized format.

llvm: fix lowering `arm_aapcs_vfp` functions


1 files changed, 3 insertions(+), 3 deletions(-)

src/codegen/llvm.zig+3-3
...@@ -11859,7 +11859,7 @@ fn firstParamSRet(fn_info: InternPool.Key.FuncType, zcu: *Zcu, target: std.Targe...@@ -11859,7 +11859,7 @@ fn firstParamSRet(fn_info: InternPool.Key.FuncType, zcu: *Zcu, target: std.Targe
11859 .aarch64_aapcs_darwin,11859 .aarch64_aapcs_darwin,
11860 .aarch64_aapcs_win,11860 .aarch64_aapcs_win,
11861 => aarch64_c_abi.classifyType(return_type, zcu) == .memory,11861 => aarch64_c_abi.classifyType(return_type, zcu) == .memory,
11862 .arm_aapcs => switch (arm_c_abi.classifyType(return_type, zcu, .ret)) {11862 .arm_aapcs, .arm_aapcs_vfp => switch (arm_c_abi.classifyType(return_type, zcu, .ret)) {
11863 .memory, .i64_array => true,11863 .memory, .i64_array => true,
11864 .i32_array => |size| size != 1,11864 .i32_array => |size| size != 1,
11865 .byval => false,11865 .byval => false,
...@@ -11909,7 +11909,7 @@ fn lowerFnRetTy(o: *Object, fn_info: InternPool.Key.FuncType) Allocator.Error!Bu...@@ -11909,7 +11909,7 @@ fn lowerFnRetTy(o: *Object, fn_info: InternPool.Key.FuncType) Allocator.Error!Bu
11909 .integer => return o.builder.intType(@intCast(return_type.bitSize(zcu))),11909 .integer => return o.builder.intType(@intCast(return_type.bitSize(zcu))),
11910 .double_integer => return o.builder.arrayType(2, .i64),11910 .double_integer => return o.builder.arrayType(2, .i64),
11911 },11911 },
11912 .arm_aapcs => switch (arm_c_abi.classifyType(return_type, zcu, .ret)) {11912 .arm_aapcs, .arm_aapcs_vfp => switch (arm_c_abi.classifyType(return_type, zcu, .ret)) {
11913 .memory, .i64_array => return .void,11913 .memory, .i64_array => return .void,
11914 .i32_array => |len| return if (len == 1) .i32 else .void,11914 .i32_array => |len| return if (len == 1) .i32 else .void,
11915 .byval => return o.lowerType(return_type),11915 .byval => return o.lowerType(return_type),
...@@ -12158,7 +12158,7 @@ const ParamTypeIterator = struct {...@@ -12158,7 +12158,7 @@ const ParamTypeIterator = struct {
12158 .double_integer => return Lowering{ .i64_array = 2 },12158 .double_integer => return Lowering{ .i64_array = 2 },
12159 }12159 }
12160 },12160 },
12161 .arm_aapcs => {12161 .arm_aapcs, .arm_aapcs_vfp => {
12162 it.zig_index += 1;12162 it.zig_index += 1;
12163 it.llvm_index += 1;12163 it.llvm_index += 1;
12164 switch (arm_c_abi.classifyType(ty, zcu, .arg)) {12164 switch (arm_c_abi.classifyType(ty, zcu, .arg)) {