further progress on disassembly cache; instead of caching the text via the disassembly cache, simply submit into the hash store; this allows the disassembly cache to be composed with other caches, like the text analysis cache. + plug this system into the disassembly view rule, so now we can disassemble arbitrary pointers in the watch window

This commit is contained in:
Ryan Fleury
2024-03-28 11:36:57 -07:00
parent c91cd69536
commit d3570e8147
4 changed files with 231 additions and 88 deletions
+2 -6
View File
@@ -46,7 +46,7 @@ struct DASM_InstArray
typedef struct DASM_Info DASM_Info;
struct DASM_Info
{
String8 text;
U128 text_key;
DASM_InstArray insts;
};
@@ -170,11 +170,6 @@ internal DASM_InstArray dasm_inst_array_from_chunk_list(Arena *arena, DASM_InstC
internal U64 dasm_inst_array_idx_from_code_off__linear_scan(DASM_InstArray *array, U64 off);
internal U64 dasm_inst_array_code_off_from_idx(DASM_InstArray *array, U64 idx);
////////////////////////////////
//~ rjf: Disassembly Decoding Function
internal DASM_Info dasm_info_from_arch_addr_data(Arena *arena, U64 *bytes_processed_counter, Architecture arch, U64 addr, String8 data);
////////////////////////////////
//~ rjf: Main Layer Initialization
@@ -198,6 +193,7 @@ internal void dasm_scope_touch_node__stripe_r_guarded(DASM_Scope *scope, DASM_No
internal DASM_Info dasm_info_from_hash_addr_arch(DASM_Scope *scope, U128 hash, U64 addr, Architecture arch);
internal DASM_Info dasm_info_from_key_addr_arch(DASM_Scope *scope, U128 key, U64 addr, Architecture arch, U128 *hash_out);
////////////////////////////////
//~ rjf: Parse Threads