introduce separate rdi table element types for isolated line tables & inline sites

This commit is contained in:
Ryan Fleury
2024-06-02 21:22:01 -07:00
parent a4a0452d0c
commit f7ce1b73bc
2 changed files with 57 additions and 3 deletions
+22
View File
@@ -797,6 +797,16 @@ RDI_U32 line_info_col_data_idx;
RDI_U32 line_info_count;
};
typedef struct RDI_LineTable RDI_LineTable;
struct RDI_LineTable
{
RDI_U32 voffs_base_idx;
RDI_U32 lines_base_idx;
RDI_U32 cols_base_idx;
RDI_U32 lines_count;
RDI_U32 cols_count;
};
typedef struct RDI_Line RDI_Line;
struct RDI_Line
{
@@ -934,6 +944,18 @@ RDI_U32 static_local_idx_run_first;
RDI_U32 static_local_count;
};
typedef struct RDI_InlineSite RDI_InlineSite;
struct RDI_InlineSite
{
RDI_U32 name_string_idx;
RDI_U32 call_src_file_idx;
RDI_U32 call_line_num;
RDI_U32 call_col_num;
RDI_U32 type_idx;
RDI_U32 owner_type_idx;
RDI_U32 line_table_idx;
};
typedef struct RDI_Local RDI_Local;
struct RDI_Local
{
+35 -3
View File
@@ -507,6 +507,16 @@ RDI_UnitMemberTable:
////////////////////////////////
//~ rjf: Line Info Type Tables
@table(name type desc)
RDI_LineTableMemberTable:
{
{voffs_base_idx RDI_U32 ""} // U64[lines_count+1] (sorted ranges)
{lines_base_idx RDI_U32 ""} // RDI_Line[lines_count]
{cols_base_idx RDI_U32 ""} // RDI_Column[cols_count]
{lines_count RDI_U32 ""}
{cols_count RDI_U32 ""}
}
@table(name type desc)
RDI_LineMemberTable:
{
@@ -521,6 +531,11 @@ RDI_ColumnMemberTable:
{col_opl RDI_U16 ""}
}
@struct RDI_LineTable:
{
@expand(RDI_LineTableMemberTable a) `$(a.type) $(a.name)`
}
@struct RDI_Line:
{
@expand(RDI_LineMemberTable a) `$(a.type) $(a.name)`
@@ -808,9 +823,9 @@ RDI_LocalKindTable:
@table(name value)
RDI_LocationKindTable:
{
{NULL 0x0}
{AddrBytecodeStream 0x1}
{ValBytecodeStream 0x2}
{NULL 0x0}
{AddrBytecodeStream 0x1}
{ValBytecodeStream 0x2}
{AddrRegPlusU16 0x3}
{AddrAddrRegPlusU16 0x4}
{ValReg 0x5}
@@ -862,6 +877,18 @@ RDI_ScopeMemberTable:
{static_local_count RDI_U32 ""}
}
@table(name type desc)
RDI_InlineSiteMemberTable:
{
{name_string_idx RDI_U32 ""}
{call_src_file_idx RDI_U32 ""}
{call_line_num RDI_U32 ""}
{call_col_num RDI_U32 ""}
{type_idx RDI_U32 ""}
{owner_type_idx RDI_U32 ""}
{line_table_idx RDI_U32 ""}
}
@table(name type desc)
RDI_LocalMemberTable:
{
@@ -953,6 +980,11 @@ RDI_LocationRegMemberTable:
@expand(RDI_ScopeMemberTable a) `$(a.type) $(a.name)`
}
@struct RDI_InlineSite:
{
@expand(RDI_InlineSiteMemberTable a) `$(a.type) $(a.name)`
}
@struct RDI_Local:
{
@expand(RDI_LocalMemberTable a) `$(a.type) $(a.name)`