diff options
Diffstat (limited to 'src/llvm_abi.cpp')
| -rw-r--r-- | src/llvm_abi.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp index b0045d869..857b255f3 100644 --- a/src/llvm_abi.cpp +++ b/src/llvm_abi.cpp @@ -1130,14 +1130,14 @@ namespace lbAbiArm64 { return non_struct(c, return_type); } else if (is_homogenous_aggregate(c, return_type, &homo_base_type, &homo_member_count)) { if (is_homogenous_aggregate_small_enough(homo_base_type, homo_member_count)) { - return lb_arg_type_direct(return_type, LLVMArrayType(homo_base_type, homo_member_count), nullptr, nullptr); + return lb_arg_type_direct(return_type, llvm_array_type(homo_base_type, homo_member_count), nullptr, nullptr); } else { //TODO(Platin): do i need to create stuff that can handle the diffrent return type? // else this needs a fix in llvm_backend_proc as we would need to cast it to the correct array type LB_ABI_MODIFY_RETURN_IF_TUPLE_MACRO(); - //LLVMTypeRef array_type = LLVMArrayType(homo_base_type, homo_member_count); + //LLVMTypeRef array_type = llvm_array_type(homo_base_type, homo_member_count); LLVMAttributeRef attr = lb_create_enum_attribute_with_type(c, "sret", return_type); return lb_arg_type_indirect(return_type, attr); } @@ -1155,7 +1155,7 @@ namespace lbAbiArm64 { cast_type = LLVMInt64TypeInContext(c); } else { unsigned count = cast(unsigned)((size+7)/8); - cast_type = LLVMArrayType(LLVMInt64TypeInContext(c), count); + cast_type = llvm_array_type(LLVMInt64TypeInContext(c), count); } return lb_arg_type_direct(return_type, cast_type, nullptr, nullptr); } else { @@ -1180,7 +1180,7 @@ namespace lbAbiArm64 { args[i] = non_struct(c, type); } else if (is_homogenous_aggregate(c, type, &homo_base_type, &homo_member_count)) { if (is_homogenous_aggregate_small_enough(homo_base_type, homo_member_count)) { - args[i] = lb_arg_type_direct(type, LLVMArrayType(homo_base_type, homo_member_count), nullptr, nullptr); + args[i] = lb_arg_type_direct(type, llvm_array_type(homo_base_type, homo_member_count), nullptr, nullptr); } else { args[i] = lb_arg_type_indirect(type, nullptr);; } @@ -1198,7 +1198,7 @@ namespace lbAbiArm64 { cast_type = LLVMIntTypeInContext(c, 64); } else { unsigned count = cast(unsigned)((size+7)/8); - cast_type = LLVMArrayType(LLVMIntTypeInContext(c, 64), count); + cast_type = llvm_array_type(LLVMIntTypeInContext(c, 64), count); } args[i] = lb_arg_type_direct(type, cast_type, nullptr, nullptr); } else { @@ -1439,10 +1439,10 @@ namespace lbAbiArm32 { args[i] = lb_arg_type_indirect(t, nullptr); } else if (a <= 4) { unsigned n = cast(unsigned)((sz + 3) / 4); - args[i] = lb_arg_type_direct(LLVMArrayType(LLVMIntTypeInContext(c, 32), n)); + args[i] = lb_arg_type_direct(llvm_array_type(LLVMIntTypeInContext(c, 32), n)); } else { unsigned n = cast(unsigned)((sz + 7) / 8); - args[i] = lb_arg_type_direct(LLVMArrayType(LLVMIntTypeInContext(c, 64), n)); + args[i] = lb_arg_type_direct(llvm_array_type(LLVMIntTypeInContext(c, 64), n)); } } } |