mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 21:38:40 +00:00
export CodeView types as aliases to its builtin counter-parts,
This commit is contained in:
@@ -444,7 +444,8 @@ rdim_rng1u64_list_push(RDIM_Arena *arena, RDIM_Rng1U64List *list, RDIM_Rng1U64 r
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_short_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_S16;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_S16;
|
||||
@@ -459,7 +460,8 @@ rdim_short_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_unsigned_short_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_U16;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_U16;
|
||||
@@ -474,7 +476,8 @@ rdim_unsigned_short_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_int_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_S32;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_S32;
|
||||
@@ -489,7 +492,8 @@ rdim_int_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_U32;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_U32;
|
||||
@@ -504,7 +508,8 @@ rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_S32;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_S32;
|
||||
@@ -519,7 +524,8 @@ rdim_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_unsigned_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_U32;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_U32;
|
||||
@@ -534,7 +540,8 @@ rdim_unsigned_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_long_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_S64;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_S64;
|
||||
@@ -549,7 +556,8 @@ rdim_long_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_unsigned_long_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_U64;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_U64;
|
||||
@@ -564,7 +572,8 @@ rdim_unsigned_long_long_type_from_data_model(RDIM_DataModel data_model)
|
||||
RDI_PROC RDI_TypeKind
|
||||
rdim_pointer_size_t_type_from_data_model(RDIM_DataModel data_model)
|
||||
{
|
||||
switch (data_model) {
|
||||
switch(data_model)
|
||||
{
|
||||
case RDIM_DataModel_Null : break;
|
||||
case RDIM_DataModel_ILP32 : return RDI_TypeKind_U32;
|
||||
case RDIM_DataModel_LLP64 : return RDI_TypeKind_U64;
|
||||
@@ -1298,6 +1307,48 @@ rdim_count_from_location_block_chunk_list(RDIM_String8List *list)
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
RDI_PROC RDIM_Type *
|
||||
rdim_builtin_type_from_kind(RDIM_TypeChunkList list, RDI_TypeKind type_kind)
|
||||
{
|
||||
RDI_U64 type_idx = 0;
|
||||
if (type_kind != RDI_TypeKind_NULL) {
|
||||
type_idx = (type_kind - RDI_TypeKind_FirstBuiltIn) + 1;
|
||||
}
|
||||
RDIM_Type *builtin = &list.first->v[type_idx];
|
||||
return builtin;
|
||||
}
|
||||
|
||||
RDI_PROC RDIM_TypeChunkList
|
||||
rdim_init_type_chunk_list(RDIM_Arena *arena, RDI_Arch arch)
|
||||
{
|
||||
RDIM_TypeChunkList list = {0};
|
||||
|
||||
RDI_U64 type_cap = (RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn) + 2;
|
||||
|
||||
RDIM_Type *null_type = rdim_type_chunk_list_push(arena, &list, type_cap);
|
||||
|
||||
for(RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; type_kind <= RDI_TypeKind_LastBuiltIn; type_kind += 1)
|
||||
{
|
||||
RDIM_String8 name = {0};
|
||||
name.str = rdi_string_from_type_kind(type_kind, &name.size);
|
||||
|
||||
RDIM_Type *type = rdim_type_chunk_list_push(arena, &list, type_cap);
|
||||
type->name = name;
|
||||
type->kind = type_kind;
|
||||
type->byte_size = rdi_size_from_basic_type_kind(type_kind);
|
||||
}
|
||||
|
||||
RDIM_Type *void_type = rdim_builtin_type_from_kind(list, RDI_TypeKind_Void);
|
||||
void_type->byte_size = rdi_addr_size_from_arch(arch);
|
||||
|
||||
RDIM_Type *handle_type = rdim_builtin_type_from_kind(list, RDI_TypeKind_Handle);
|
||||
handle_type->byte_size = rdi_addr_size_from_arch(arch);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
RDI_PROC void
|
||||
rdim_assign_type_index(RDIM_Type *type, U64 *type_indices, U64 *curr_type_idx)
|
||||
{
|
||||
|
||||
@@ -1459,6 +1459,11 @@ RDI_PROC void rdim_location_set_push_case(RDIM_Arena *arena, RDIM_ScopeChunkList
|
||||
RDI_PROC RDI_LocationBlock * rdim_location_block_chunk_list_push_array(RDIM_Arena *arena, RDIM_String8List *list, RDI_U32 count);
|
||||
RDI_PROC RDI_U32 rdim_count_from_location_block_chunk_list(RDIM_String8List *list);
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
RDI_PROC RDIM_TypeChunkList rdim_init_type_chunk_list(RDIM_Arena *arena, RDI_Arch arch);
|
||||
RDI_PROC RDIM_Type * rdim_builtin_type_from_kind(RDIM_TypeChunkList list, RDI_TypeKind type_kind);
|
||||
|
||||
////////////////////////////////
|
||||
// Type Index
|
||||
|
||||
|
||||
Reference in New Issue
Block a user