mirror of
https://github.com/odin-lang/Odin.git
synced 2026-07-22 15:32:35 +00:00
Merge pull request #7015 from BlackGoku36/master
Fix arm64 ABI: '#simd' vectors and vector aggregates not passed in registers (fixes #7010)
This commit is contained in:
@@ -1147,6 +1147,10 @@ namespace lbAbiArm64 {
|
||||
case LLVMDoubleTypeKind:
|
||||
case LLVMPointerTypeKind:
|
||||
return true;
|
||||
case LLVMVectorTypeKind:{
|
||||
i64 sz = lb_sizeof(type);
|
||||
return sz == 8 || sz == 16;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1228,6 +1232,15 @@ namespace lbAbiArm64 {
|
||||
if (base_type_) *base_type_ = type;
|
||||
if (member_count_) *member_count_ = 1;
|
||||
return true;
|
||||
case LLVMVectorTypeKind:{
|
||||
i64 sz = lb_sizeof(type);
|
||||
if (sz == 8 || sz == 16){
|
||||
if (base_type_) *base_type_ = type;
|
||||
if (member_count_) *member_count_ = 1;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
case LLVMArrayTypeKind:
|
||||
return is_homogenous_array(c, type, base_type_, member_count_);
|
||||
case LLVMStructTypeKind:
|
||||
|
||||
Reference in New Issue
Block a user