|
@@ -223,7 +223,7 @@ i64 lb_sizeof(LLVMTypeRef type) {
|
|
break;
|
|
break;
|
|
case LLVMArrayTypeKind:
|
|
case LLVMArrayTypeKind:
|
|
{
|
|
{
|
|
- LLVMTypeRef elem = LLVMGetElementType(type);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetArrayElementType(type);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 count = LLVMGetArrayLength(type);
|
|
i64 count = LLVMGetArrayLength(type);
|
|
i64 size = count * elem_size;
|
|
i64 size = count * elem_size;
|
|
@@ -235,7 +235,7 @@ i64 lb_sizeof(LLVMTypeRef type) {
|
|
return 8;
|
|
return 8;
|
|
case LLVMVectorTypeKind:
|
|
case LLVMVectorTypeKind:
|
|
{
|
|
{
|
|
- LLVMTypeRef elem = LLVMGetElementType(type);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetVectorElementType(type);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 count = LLVMGetVectorSize(type);
|
|
i64 count = LLVMGetVectorSize(type);
|
|
i64 size = count * elem_size;
|
|
i64 size = count * elem_size;
|
|
@@ -283,14 +283,14 @@ i64 lb_alignof(LLVMTypeRef type) {
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case LLVMArrayTypeKind:
|
|
case LLVMArrayTypeKind:
|
|
- return lb_alignof(LLVMGetElementType(type));
|
|
|
|
|
|
+ return lb_alignof(OdinLLVMGetArrayElementType(type));
|
|
|
|
|
|
case LLVMX86_MMXTypeKind:
|
|
case LLVMX86_MMXTypeKind:
|
|
return 8;
|
|
return 8;
|
|
case LLVMVectorTypeKind:
|
|
case LLVMVectorTypeKind:
|
|
{
|
|
{
|
|
// TODO(bill): This appears to be correct but LLVM isn't necessarily "great" with regards to documentation
|
|
// TODO(bill): This appears to be correct but LLVM isn't necessarily "great" with regards to documentation
|
|
- LLVMTypeRef elem = LLVMGetElementType(type);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetVectorElementType(type);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 elem_size = lb_sizeof(elem);
|
|
i64 count = LLVMGetVectorSize(type);
|
|
i64 count = LLVMGetVectorSize(type);
|
|
i64 size = count * elem_size;
|
|
i64 size = count * elem_size;
|
|
@@ -793,7 +793,7 @@ namespace lbAbiAmd64SysV {
|
|
case LLVMArrayTypeKind:
|
|
case LLVMArrayTypeKind:
|
|
{
|
|
{
|
|
i64 len = LLVMGetArrayLength(t);
|
|
i64 len = LLVMGetArrayLength(t);
|
|
- LLVMTypeRef elem = LLVMGetElementType(t);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetArrayElementType(t);
|
|
i64 elem_sz = lb_sizeof(elem);
|
|
i64 elem_sz = lb_sizeof(elem);
|
|
for (i64 i = 0; i < len; i++) {
|
|
for (i64 i = 0; i < len; i++) {
|
|
classify_with(elem, cls, ix, off + i*elem_sz);
|
|
classify_with(elem, cls, ix, off + i*elem_sz);
|
|
@@ -803,7 +803,7 @@ namespace lbAbiAmd64SysV {
|
|
case LLVMVectorTypeKind:
|
|
case LLVMVectorTypeKind:
|
|
{
|
|
{
|
|
i64 len = LLVMGetVectorSize(t);
|
|
i64 len = LLVMGetVectorSize(t);
|
|
- LLVMTypeRef elem = LLVMGetElementType(t);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetVectorElementType(t);
|
|
i64 elem_sz = lb_sizeof(elem);
|
|
i64 elem_sz = lb_sizeof(elem);
|
|
LLVMTypeKind elem_kind = LLVMGetTypeKind(elem);
|
|
LLVMTypeKind elem_kind = LLVMGetTypeKind(elem);
|
|
RegClass reg = RegClass_NoClass;
|
|
RegClass reg = RegClass_NoClass;
|
|
@@ -913,7 +913,7 @@ namespace lbAbiArm64 {
|
|
if (len == 0) {
|
|
if (len == 0) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- LLVMTypeRef elem = LLVMGetElementType(type);
|
|
|
|
|
|
+ LLVMTypeRef elem = OdinLLVMGetArrayElementType(type);
|
|
LLVMTypeRef base_type = nullptr;
|
|
LLVMTypeRef base_type = nullptr;
|
|
unsigned member_count = 0;
|
|
unsigned member_count = 0;
|
|
if (is_homogenous_aggregate(c, elem, &base_type, &member_count)) {
|
|
if (is_homogenous_aggregate(c, elem, &base_type, &member_count)) {
|
|
@@ -1129,7 +1129,7 @@ namespace lbAbiWasm {
|
|
}
|
|
}
|
|
if (sz <= MAX_DIRECT_STRUCT_SIZE) {
|
|
if (sz <= MAX_DIRECT_STRUCT_SIZE) {
|
|
if (kind == LLVMArrayTypeKind) {
|
|
if (kind == LLVMArrayTypeKind) {
|
|
- if (is_basic_register_type(LLVMGetElementType(type))) {
|
|
|
|
|
|
+ if (is_basic_register_type(OdinLLVMGetArrayElementType(type))) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
} else if (kind == LLVMStructTypeKind) {
|
|
} else if (kind == LLVMStructTypeKind) {
|