extend udts w/ container info

This commit is contained in:
Ryan Fleury
2026-04-20 09:57:32 -07:00
parent e6d28d40e2
commit 290590b885
3 changed files with 21 additions and 22 deletions
+8 -2
View File
@@ -67,7 +67,7 @@ union RDI_GUID {RDI_U8 u8[16]; RDI_U64 u64[2];};
// "raddbg\0\0" // "raddbg\0\0"
#define RDI_MAGIC_CONSTANT 0x0000676264646172 #define RDI_MAGIC_CONSTANT 0x0000676264646172
#define RDI_ENCODING_VERSION 20 #define RDI_ENCODING_VERSION 21
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
//~ Format Types & Functions //~ Format Types & Functions
@@ -363,7 +363,7 @@ RDI_TypeModifierFlag_Volatile = 1<<1,
RDI_TypeModifierFlag_Restrict = 1<<2, RDI_TypeModifierFlag_Restrict = 1<<2,
} RDI_TypeModifierFlagsEnum; } RDI_TypeModifierFlagsEnum;
typedef RDI_U32 RDI_UDTFlags; typedef RDI_U8 RDI_UDTFlags;
typedef enum RDI_UDTFlagsEnum typedef enum RDI_UDTFlagsEnum
{ {
RDI_UDTFlag_EnumMembers = 1<<0, RDI_UDTFlag_EnumMembers = 1<<0,
@@ -879,11 +879,14 @@ X(EnumMembers)\
#define RDI_UDT_XList \ #define RDI_UDT_XList \
X(RDI_U32, self_type_idx)\ X(RDI_U32, self_type_idx)\
X(RDI_UDTFlags, flags)\ X(RDI_UDTFlags, flags)\
X(RDI_ContainerFlags, container_flags)\
X(RDI_U16, reserved_0)\
X(RDI_U32, member_first)\ X(RDI_U32, member_first)\
X(RDI_U32, member_count)\ X(RDI_U32, member_count)\
X(RDI_U32, file_idx)\ X(RDI_U32, file_idx)\
X(RDI_U32, line)\ X(RDI_U32, line)\
X(RDI_U32, col)\ X(RDI_U32, col)\
X(RDI_U32, container_idx)\
#define RDI_MemberKind_XList \ #define RDI_MemberKind_XList \
X(NULL)\ X(NULL)\
@@ -1427,11 +1430,14 @@ struct RDI_UDT
{ {
RDI_U32 self_type_idx; RDI_U32 self_type_idx;
RDI_UDTFlags flags; RDI_UDTFlags flags;
RDI_ContainerFlags container_flags;
RDI_U16 reserved_0;
RDI_U32 member_first; RDI_U32 member_first;
RDI_U32 member_count; RDI_U32 member_count;
RDI_U32 file_idx; RDI_U32 file_idx;
RDI_U32 line; RDI_U32 line;
RDI_U32 col; RDI_U32 col;
RDI_U32 container_idx;
}; };
typedef struct RDI_Member RDI_Member; typedef struct RDI_Member RDI_Member;
+12 -9
View File
@@ -77,7 +77,7 @@
""; "";
"// \"raddbg\\0\\0\""; "// \"raddbg\\0\\0\"";
"#define RDI_MAGIC_CONSTANT 0x0000676264646172"; "#define RDI_MAGIC_CONSTANT 0x0000676264646172";
"#define RDI_ENCODING_VERSION 20"; "#define RDI_ENCODING_VERSION 21";
""; "";
"////////////////////////////////////////////////////////////////"; "////////////////////////////////////////////////////////////////";
"//~ Format Types & Functions"; "//~ Format Types & Functions";
@@ -825,13 +825,16 @@ RDI_UDTFlagTable:
@table(name type desc) @table(name type desc)
RDI_UDTMemberTable: RDI_UDTMemberTable:
{ {
{self_type_idx RDI_U32 ""} {self_type_idx RDI_U32 ""}
{flags RDI_UDTFlags ""} {flags RDI_UDTFlags ""}
{member_first RDI_U32 ""} {container_flags RDI_ContainerFlags ""}
{member_count RDI_U32 ""} {reserved_0 RDI_U16 ""}
{file_idx RDI_U32 ""} {member_first RDI_U32 ""}
{line RDI_U32 ""} {member_count RDI_U32 ""}
{col RDI_U32 ""} {file_idx RDI_U32 ""}
{line RDI_U32 ""}
{col RDI_U32 ""}
{container_idx RDI_U32 ""}
} }
@table(name value) @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)` @expand(RDI_UDTFlagTable a) `$(a.name .. =>20) = $(a.value)`
} }
+1 -11
View File
@@ -1798,17 +1798,6 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params)
} }
lane_sync(); 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 //- rjf: @rdim_bake_stage bake strings
// //
@@ -3196,6 +3185,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params)
} }
} }
#endif #endif
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
//- rjf: @rdim_bake_stage compute layout for constant data //- rjf: @rdim_bake_stage compute layout for constant data
// //