entity parameter tree equipment; architecture -> arch

This commit is contained in:
Ryan Fleury
2024-08-29 13:16:50 -07:00
parent df6150c811
commit 9932a30ef9
42 changed files with 395 additions and 342 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ e_dynamically_typed_eval_from_eval(E_Eval eval)
if(e_space_read(eval.space, &class_base_vaddr, r1u64(ptr_vaddr, ptr_vaddr+addr_size)) &&
e_space_read(eval.space, &vtable_vaddr, r1u64(class_base_vaddr, class_base_vaddr+addr_size)))
{
Architecture arch = e_type_state->ctx->primary_module->arch;
Arch arch = e_type_state->ctx->primary_module->arch;
U32 rdi_idx = 0;
RDI_Parsed *rdi = 0;
U64 module_base = 0;
+1 -1
View File
@@ -110,7 +110,7 @@ struct E_Module
{
RDI_Parsed *rdi;
Rng1U64 vaddr_range;
Architecture arch;
Arch arch;
E_Space space;
};
+1 -1
View File
@@ -163,7 +163,7 @@ e_interpret(String8 bytecode)
U8 byte_size = (imm.u64&0x00FF00)>>8;
U8 byte_off = (imm.u64&0xFF0000)>>16;
REGS_RegCode base_reg_code = regs_reg_code_from_arch_rdi_code(e_interpret_ctx->reg_arch, rdi_reg_code);
REGS_Rng rng = regs_reg_code_rng_table_from_architecture(e_interpret_ctx->reg_arch)[base_reg_code];
REGS_Rng rng = regs_reg_code_rng_table_from_arch(e_interpret_ctx->reg_arch)[base_reg_code];
U64 off = (U64)rng.byte_off + byte_off;
U64 size = (U64)byte_size;
B32 good_read = e_space_read(e_interpret_ctx->reg_space, &nval, r1u64(off, off+size));
+1 -1
View File
@@ -26,7 +26,7 @@ struct E_InterpretCtx
E_SpaceRWFunction *space_read;
E_SpaceRWFunction *space_write;
E_Space primary_space;
Architecture reg_arch;
Arch reg_arch;
E_Space reg_space;
U64 reg_unwind_count;
U64 *module_base;
+5 -5
View File
@@ -1292,7 +1292,7 @@ e_parse_expr_from_text_tokens__prec(Arena *arena, String8 text, E_TokenArray *to
E_TypeKey type_key = zero_struct;
String8 local_lookup_string = token_string;
E_Space space = {0};
Architecture arch = Architecture_Null;
Arch arch = Arch_Null;
//- rjf: identifiers surrounded by ``s should have those `s stripped
if(local_lookup_string.size >= 2 &&
@@ -1594,7 +1594,7 @@ e_parse_expr_from_text_tokens__prec(Arena *arena, String8 text, E_TokenArray *to
}
else if(reg_code != 0)
{
REGS_Rng reg_rng = regs_reg_code_rng_table_from_architecture(e_parse_ctx->primary_module->arch)[reg_code];
REGS_Rng reg_rng = regs_reg_code_rng_table_from_arch(e_parse_ctx->primary_module->arch)[reg_code];
E_OpList oplist = {0};
e_oplist_push_uconst(arena, &oplist, reg_rng.byte_off);
atom = e_push_expr(arena, E_ExprKind_LeafBytecode, token_string.str);
@@ -1606,8 +1606,8 @@ e_parse_expr_from_text_tokens__prec(Arena *arena, String8 text, E_TokenArray *to
}
else if(alias_code != 0)
{
REGS_Slice alias_slice = regs_alias_code_slice_table_from_architecture(e_parse_ctx->primary_module->arch)[alias_code];
REGS_Rng alias_reg_rng = regs_reg_code_rng_table_from_architecture(e_parse_ctx->primary_module->arch)[alias_slice.code];
REGS_Slice alias_slice = regs_alias_code_slice_table_from_arch(e_parse_ctx->primary_module->arch)[alias_code];
REGS_Rng alias_reg_rng = regs_reg_code_rng_table_from_arch(e_parse_ctx->primary_module->arch)[alias_slice.code];
E_OpList oplist = {0};
e_oplist_push_uconst(arena, &oplist, alias_reg_rng.byte_off + alias_slice.byte_off);
atom = e_push_expr(arena, E_ExprKind_LeafBytecode, token_string.str);
@@ -1674,7 +1674,7 @@ e_parse_expr_from_text_tokens__prec(Arena *arena, String8 text, E_TokenArray *to
case RDI_LocationKind_ValReg:
{
REGS_RegCode regs_reg_code = regs_reg_code_from_arch_rdi_code(arch, loc_reg.reg_code);
REGS_Rng reg_rng = regs_reg_code_rng_table_from_architecture(arch)[regs_reg_code];
REGS_Rng reg_rng = regs_reg_code_rng_table_from_arch(arch)[regs_reg_code];
E_OpList oplist = {0};
U64 byte_size = (U64)reg_rng.byte_size;
U64 byte_pos = 0;
+7 -7
View File
@@ -256,7 +256,7 @@ e_type_key_ext(E_TypeKind kind, U32 type_idx, U32 rdi_idx)
}
internal E_TypeKey
e_type_key_reg(Architecture arch, REGS_RegCode code)
e_type_key_reg(Arch arch, REGS_RegCode code)
{
E_TypeKey key = {E_TypeKeyKind_Reg};
key.u32[0] = (U32)arch;
@@ -265,7 +265,7 @@ e_type_key_reg(Architecture arch, REGS_RegCode code)
}
internal E_TypeKey
e_type_key_reg_alias(Architecture arch, REGS_AliasCode code)
e_type_key_reg_alias(Arch arch, REGS_AliasCode code)
{
E_TypeKey key = {E_TypeKeyKind_RegAlias};
key.u32[0] = (U32)arch;
@@ -398,7 +398,7 @@ e_type_key_cons_array(E_TypeKey element_type_key, U64 count)
}
internal E_TypeKey
e_type_key_cons_ptr(Architecture arch, E_TypeKey element_type_key)
e_type_key_cons_ptr(Arch arch, E_TypeKey element_type_key)
{
E_TypeKey key = e_type_key_cons(.arch = arch, .kind = E_TypeKind_Ptr, .direct_key = element_type_key);
return key;
@@ -818,16 +818,16 @@ e_type_from_key(Arena *arena, E_TypeKey key)
//- rjf: reg type keys
case E_TypeKeyKind_Reg:
{
Architecture arch = (Architecture)key.u32[0];
Arch arch = (Arch)key.u32[0];
REGS_RegCode code = (REGS_RegCode)key.u32[1];
REGS_Rng rng = regs_reg_code_rng_table_from_architecture(arch)[code];
REGS_Rng rng = regs_reg_code_rng_table_from_arch(arch)[code];
reg_byte_count = (U64)rng.byte_size;
}goto build_reg_type;
case E_TypeKeyKind_RegAlias:
{
Architecture arch = (Architecture)key.u32[0];
Arch arch = (Arch)key.u32[0];
REGS_AliasCode code = (REGS_AliasCode)key.u32[1];
REGS_Slice slice = regs_alias_code_slice_table_from_architecture(arch)[code];
REGS_Slice slice = regs_alias_code_slice_table_from_arch(arch)[code];
reg_byte_count = (U64)slice.byte_size;
}goto build_reg_type;
build_reg_type:
+5 -5
View File
@@ -23,7 +23,7 @@ struct E_TypeKey
{
E_TypeKeyKind kind;
U32 u32[3];
// [0] -> E_TypeKind (Basic, Cons, Ext); Architecture (Reg, RegAlias)
// [0] -> E_TypeKind (Basic, Cons, Ext); Arch (Reg, RegAlias)
// [1] -> Type Index In RDI (Ext); Code (Reg, RegAlias); Type Index In Constructed (Cons)
// [2] -> RDI Index (Ext)
};
@@ -138,7 +138,7 @@ struct E_Type
typedef struct E_ConsTypeParams E_ConsTypeParams;
struct E_ConsTypeParams
{
Architecture arch;
Arch arch;
E_TypeKind kind;
String8 name;
E_TypeKey direct_key;
@@ -230,8 +230,8 @@ internal void e_select_type_ctx(E_TypeCtx *ctx);
internal E_TypeKey e_type_key_zero(void);
internal E_TypeKey e_type_key_basic(E_TypeKind kind);
internal E_TypeKey e_type_key_ext(E_TypeKind kind, U32 type_idx, U32 rdi_idx);
internal E_TypeKey e_type_key_reg(Architecture arch, REGS_RegCode code);
internal E_TypeKey e_type_key_reg_alias(Architecture arch, REGS_AliasCode code);
internal E_TypeKey e_type_key_reg(Arch arch, REGS_RegCode code);
internal E_TypeKey e_type_key_reg_alias(Arch arch, REGS_AliasCode code);
//- rjf: constructed type construction
internal U64 e_hash_from_cons_type_params(E_ConsTypeParams *params);
@@ -241,7 +241,7 @@ internal E_TypeKey e_type_key_cons_(E_ConsTypeParams *params);
//- rjf: constructed type construction helpers
internal E_TypeKey e_type_key_cons_array(E_TypeKey element_type_key, U64 count);
internal E_TypeKey e_type_key_cons_ptr(Architecture arch, E_TypeKey element_type_key);
internal E_TypeKey e_type_key_cons_ptr(Arch arch, E_TypeKey element_type_key);
//- rjf: basic type key functions
internal B32 e_type_key_match(E_TypeKey l, E_TypeKey r);