diff --git a/src/lib_rdi/rdi.h b/src/lib_rdi/rdi.h index c676bb89..c37753f9 100644 --- a/src/lib_rdi/rdi.h +++ b/src/lib_rdi/rdi.h @@ -67,7 +67,7 @@ union RDI_GUID {RDI_U8 u8[16]; RDI_U64 u64[2];}; // "raddbg\0\0" #define RDI_MAGIC_CONSTANT 0x0000676264646172 -#define RDI_ENCODING_VERSION 20 +#define RDI_ENCODING_VERSION 21 //////////////////////////////////////////////////////////////// //~ Format Types & Functions @@ -363,7 +363,7 @@ RDI_TypeModifierFlag_Volatile = 1<<1, RDI_TypeModifierFlag_Restrict = 1<<2, } RDI_TypeModifierFlagsEnum; -typedef RDI_U32 RDI_UDTFlags; +typedef RDI_U8 RDI_UDTFlags; typedef enum RDI_UDTFlagsEnum { RDI_UDTFlag_EnumMembers = 1<<0, @@ -879,11 +879,14 @@ X(EnumMembers)\ #define RDI_UDT_XList \ X(RDI_U32, self_type_idx)\ X(RDI_UDTFlags, flags)\ +X(RDI_ContainerFlags, container_flags)\ +X(RDI_U16, reserved_0)\ X(RDI_U32, member_first)\ X(RDI_U32, member_count)\ X(RDI_U32, file_idx)\ X(RDI_U32, line)\ X(RDI_U32, col)\ +X(RDI_U32, container_idx)\ #define RDI_MemberKind_XList \ X(NULL)\ @@ -1427,11 +1430,14 @@ struct RDI_UDT { RDI_U32 self_type_idx; RDI_UDTFlags flags; +RDI_ContainerFlags container_flags; +RDI_U16 reserved_0; RDI_U32 member_first; RDI_U32 member_count; RDI_U32 file_idx; RDI_U32 line; RDI_U32 col; +RDI_U32 container_idx; }; typedef struct RDI_Member RDI_Member; diff --git a/src/rdi/rdi.mdesk b/src/rdi/rdi.mdesk index abce6094..fd324eb8 100644 --- a/src/rdi/rdi.mdesk +++ b/src/rdi/rdi.mdesk @@ -77,7 +77,7 @@ ""; "// \"raddbg\\0\\0\""; "#define RDI_MAGIC_CONSTANT 0x0000676264646172"; - "#define RDI_ENCODING_VERSION 20"; + "#define RDI_ENCODING_VERSION 21"; ""; "////////////////////////////////////////////////////////////////"; "//~ Format Types & Functions"; @@ -825,13 +825,16 @@ RDI_UDTFlagTable: @table(name type desc) RDI_UDTMemberTable: { - {self_type_idx RDI_U32 ""} - {flags RDI_UDTFlags ""} - {member_first RDI_U32 ""} - {member_count RDI_U32 ""} - {file_idx RDI_U32 ""} - {line RDI_U32 ""} - {col RDI_U32 ""} + {self_type_idx RDI_U32 ""} + {flags RDI_UDTFlags ""} + {container_flags RDI_ContainerFlags ""} + {reserved_0 RDI_U16 ""} + {member_first RDI_U32 ""} + {member_count RDI_U32 ""} + {file_idx RDI_U32 ""} + {line RDI_U32 ""} + {col RDI_U32 ""} + {container_idx RDI_U32 ""} } @table(name value) @@ -942,7 +945,7 @@ RDI_EnumMemberTable: ``` } -@enum(RDI_U32) RDI_UDTFlags: +@enum(RDI_U8) RDI_UDTFlags: { @expand(RDI_UDTFlagTable a) `$(a.name .. =>20) = $(a.value)` } diff --git a/src/rdi_make/rdi_make_local.c b/src/rdi_make/rdi_make_local.c index cb07db6d..948b08ac 100644 --- a/src/rdi_make/rdi_make_local.c +++ b/src/rdi_make/rdi_make_local.c @@ -1798,17 +1798,6 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } lane_sync(); - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage build deduplicated location maps - // - RDIM_BakeStringMapTight *bake_locs__regs = 0; - RDIM_BakeStringMapTight *bake_locs__reg_plus_u16 = 0; - RDIM_BakeStringMapTight *bake_locs__bytecode = 0; - { - - } - lane_sync(); - ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake strings // @@ -3196,6 +3185,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } #endif + ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage compute layout for constant data //