mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
use xlist macros for float, signed, and unsigned conversion
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user