use xlist macros for float, signed, and unsigned conversion

This commit is contained in:
Nikita Smith
2026-02-18 16:19:18 -08:00
parent a8833dac02
commit 09f02f7d08
+5 -19
View File
@@ -1750,6 +1750,7 @@ d2r_convert_types(Arena *arena,
// convert base type encoding to RDI version // convert base type encoding to RDI version
RDI_TypeKind kind = RDI_TypeKind_NULL; RDI_TypeKind kind = RDI_TypeKind_NULL;
#define X(t,g,s) case s: kind = RDI_TypeKind_##t; break;
switch (encoding) { switch (encoding) {
case DW_ATE_Null: kind = RDI_TypeKind_NULL; break; case DW_ATE_Null: kind = RDI_TypeKind_NULL; break;
case DW_ATE_Address: kind = RDI_TypeKind_Void; break; case DW_ATE_Address: kind = RDI_TypeKind_Void; break;
@@ -1765,23 +1766,13 @@ d2r_convert_types(Arena *arena,
} break; } break;
case DW_ATE_Float: { case DW_ATE_Float: {
switch (byte_size) { switch (byte_size) {
case 2: kind = RDI_TypeKind_F16; break; D2R_ValueType_Float_XList
case 4: kind = RDI_TypeKind_F32; break;
case 6: kind = RDI_TypeKind_F48; break;
case 8: kind = RDI_TypeKind_F64; break;
case 16: kind = RDI_TypeKind_F128; break;
default: log_user_errorf("unexpected size"); break; default: log_user_errorf("unexpected size"); break;
} }
} break; } break;
case DW_ATE_Signed: { case DW_ATE_Signed: {
switch (byte_size) { switch (byte_size) {
case 1: kind = RDI_TypeKind_S8; break; D2R_ValueType_Signed_XList
case 2: kind = RDI_TypeKind_S16; break;
case 4: kind = RDI_TypeKind_S32; break;
case 8: kind = RDI_TypeKind_S64; break;
case 16: kind = RDI_TypeKind_S128; break;
case 32: kind = RDI_TypeKind_S256; break;
case 64: kind = RDI_TypeKind_S512; break;
default: log_user_errorf("unexpected size"); break; default: log_user_errorf("unexpected size"); break;
} }
} break; } break;
@@ -1795,13 +1786,7 @@ d2r_convert_types(Arena *arena,
} break; } break;
case DW_ATE_Unsigned: { case DW_ATE_Unsigned: {
switch (byte_size) { switch (byte_size) {
case 1: kind = RDI_TypeKind_U8; break; D2R_ValueType_Unsigned_XList
case 2: kind = RDI_TypeKind_U16; break;
case 4: kind = RDI_TypeKind_U32; break;
case 8: kind = RDI_TypeKind_U64; break;
case 16: kind = RDI_TypeKind_U128; break;
case 32: kind = RDI_TypeKind_U256; break;
case 64: kind = RDI_TypeKind_U512; break;
default: log_user_errorf("unexpected size"); break; default: log_user_errorf("unexpected size"); break;
} }
} break; } break;
@@ -1845,6 +1830,7 @@ d2r_convert_types(Arena *arena,
} break; } break;
default: log_user_errorf("unexpected base type encoding"); break; default: log_user_errorf("unexpected base type encoding"); break;
} }
#undef X
RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off);
type->kind = RDI_TypeKind_Alias; type->kind = RDI_TypeKind_Alias;