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
+27 -27
View File
@@ -3,102 +3,102 @@
//- GENERATED CODE
internal U64 regs_block_size_from_architecture(Architecture arch)
internal U64 regs_block_size_from_arch(Arch arch)
{
U64 result = 8;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = sizeof(REGS_RegBlockX64);}break;
case Architecture_x86:{result = sizeof(REGS_RegBlockX86);}break;
case Arch_x64:{result = sizeof(REGS_RegBlockX64);}break;
case Arch_x86:{result = sizeof(REGS_RegBlockX86);}break;
}
return result;
}
internal U64 regs_reg_code_count_from_architecture(Architecture arch)
internal U64 regs_reg_code_count_from_arch(Arch arch)
{
U64 result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = REGS_RegCodeX64_COUNT;}break;
case Architecture_x86:{result = REGS_RegCodeX86_COUNT;}break;
case Arch_x64:{result = REGS_RegCodeX64_COUNT;}break;
case Arch_x86:{result = REGS_RegCodeX86_COUNT;}break;
}
return result;
}
internal U64 regs_alias_code_count_from_architecture(Architecture arch)
internal U64 regs_alias_code_count_from_arch(Arch arch)
{
U64 result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = REGS_AliasCodeX64_COUNT;}break;
case Architecture_x86:{result = REGS_AliasCodeX86_COUNT;}break;
case Arch_x64:{result = REGS_AliasCodeX64_COUNT;}break;
case Arch_x86:{result = REGS_AliasCodeX86_COUNT;}break;
}
return result;
}
internal String8 *regs_reg_code_string_table_from_architecture(Architecture arch)
internal String8 *regs_reg_code_string_table_from_arch(Arch arch)
{
String8 *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_reg_code_x64_string_table;}break;
case Architecture_x86:{result = regs_g_reg_code_x86_string_table;}break;
case Arch_x64:{result = regs_g_reg_code_x64_string_table;}break;
case Arch_x86:{result = regs_g_reg_code_x86_string_table;}break;
}
return result;
}
internal String8 *regs_alias_code_string_table_from_architecture(Architecture arch)
internal String8 *regs_alias_code_string_table_from_arch(Arch arch)
{
String8 *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_alias_code_x64_string_table;}break;
case Architecture_x86:{result = regs_g_alias_code_x86_string_table;}break;
case Arch_x64:{result = regs_g_alias_code_x64_string_table;}break;
case Arch_x86:{result = regs_g_alias_code_x86_string_table;}break;
}
return result;
}
internal REGS_Rng *regs_reg_code_rng_table_from_architecture(Architecture arch)
internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch)
{
REGS_Rng *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_reg_code_x64_rng_table;}break;
case Architecture_x86:{result = regs_g_reg_code_x86_rng_table;}break;
case Arch_x64:{result = regs_g_reg_code_x64_rng_table;}break;
case Arch_x86:{result = regs_g_reg_code_x86_rng_table;}break;
}
return result;
}
internal REGS_Slice *regs_alias_code_slice_table_from_architecture(Architecture arch)
internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch)
{
REGS_Slice *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_alias_code_x64_slice_table;}break;
case Architecture_x86:{result = regs_g_alias_code_x86_slice_table;}break;
case Arch_x64:{result = regs_g_alias_code_x64_slice_table;}break;
case Arch_x86:{result = regs_g_alias_code_x86_slice_table;}break;
}
return result;
}
internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_architecture(Architecture arch)
internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch)
{
REGS_UsageKind *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_reg_code_x64_usage_kind_table;}break;
case Architecture_x86:{result = regs_g_reg_code_x86_usage_kind_table;}break;
case Arch_x64:{result = regs_g_reg_code_x64_usage_kind_table;}break;
case Arch_x86:{result = regs_g_reg_code_x86_usage_kind_table;}break;
}
return result;
}
internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_architecture(Architecture arch)
internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch)
{
REGS_UsageKind *result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:{result = regs_g_alias_code_x64_usage_kind_table;}break;
case Architecture_x86:{result = regs_g_alias_code_x86_usage_kind_table;}break;
case Arch_x64:{result = regs_g_alias_code_x64_usage_kind_table;}break;
case Arch_x86:{result = regs_g_alias_code_x86_usage_kind_table;}break;
}
return result;
}
+6 -6
View File
@@ -3,13 +3,13 @@
//- GENERATED CODE
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Architecture arch, REGS_RegCode code)
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code)
{
RDI_RegCode result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:
case Arch_x64:
{
switch(code)
{
@@ -116,7 +116,7 @@ case REGS_RegCodeX64_k6:{result = RDI_RegCodeX64_k6;}break;
case REGS_RegCodeX64_k7:{result = RDI_RegCodeX64_k7;}break;
}
}break;
case Architecture_x86:
case Arch_x86:
{
switch(code)
{
@@ -186,13 +186,13 @@ case REGS_RegCodeX86_ymm7:{result = RDI_RegCodeX86_ymm7;}break;
}
return result;
}
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Architecture arch, RDI_RegCode code)
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode code)
{
REGS_RegCode result = 0;
switch(arch)
{
default:{}break;
case Architecture_x64:
case Arch_x64:
{
switch(code)
{
@@ -299,7 +299,7 @@ case RDI_RegCodeX64_k6:{result = REGS_RegCodeX64_k6;}break;
case RDI_RegCodeX64_k7:{result = REGS_RegCodeX64_k7;}break;
}
}break;
case Architecture_x86:
case Arch_x86:
{
switch(code)
{
+2 -2
View File
@@ -4,7 +4,7 @@
#ifndef REGS_RDI_H
#define REGS_RDI_H
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Architecture arch, REGS_RegCode code);
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Architecture arch, RDI_RegCode reg);
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code);
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode reg);
#endif //REGS_RDI_H
+6 -6
View File
@@ -6,13 +6,13 @@
@gen @c_file
{
`internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Architecture arch, REGS_RegCode code)`;
`internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code)`;
`{`;
`RDI_RegCode result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
`case Architecture_x64:`;
`case Arch_x64:`;
`{`;
`switch(code)`
`{`;
@@ -20,7 +20,7 @@
@expand(REGS_RegTableX64 a) `case REGS_RegCodeX64_$(a.name):{result = RDI_RegCodeX64_$(a.name);}break;`;
`}`;
`}break;`;
`case Architecture_x86:`;
`case Arch_x86:`;
`{`;
`switch(code)`
`{`;
@@ -35,13 +35,13 @@
@gen @c_file
{
`internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Architecture arch, RDI_RegCode code)`;
`internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode code)`;
`{`;
`REGS_RegCode result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
`case Architecture_x64:`;
`case Arch_x64:`;
`{`;
`switch(code)`
`{`;
@@ -49,7 +49,7 @@
@expand(REGS_RegTableX64 a) `case RDI_RegCodeX64_$(a.name):{result = REGS_RegCodeX64_$(a.name);}break;`;
`}`;
`}break;`;
`case Architecture_x86:`;
`case Arch_x86:`;
`{`;
`switch(code)`
`{`;
+12 -12
View File
@@ -10,49 +10,49 @@
//~ rjf: Helpers
internal U64
regs_rip_from_arch_block(Architecture arch, void *block)
regs_rip_from_arch_block(Arch arch, void *block)
{
U64 result = 0;
if(block != 0) switch(arch)
{
default:{}break;
case Architecture_x64:{result = ((REGS_RegBlockX64 *)block)->rip.u64;}break;
case Architecture_x86:{result = (U64)((REGS_RegBlockX86 *)block)->eip.u32;}break;
case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rip.u64;}break;
case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->eip.u32;}break;
}
return result;
}
internal U64
regs_rsp_from_arch_block(Architecture arch, void *block)
regs_rsp_from_arch_block(Arch arch, void *block)
{
U64 result = 0;
if(block != 0) switch(arch)
{
default:{}break;
case Architecture_x64:{result = ((REGS_RegBlockX64 *)block)->rsp.u64;}break;
case Architecture_x86:{result = (U64)((REGS_RegBlockX86 *)block)->esp.u32;}break;
case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rsp.u64;}break;
case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->esp.u32;}break;
}
return result;
}
internal void
regs_arch_block_write_rip(Architecture arch, void *block, U64 rip)
regs_arch_block_write_rip(Arch arch, void *block, U64 rip)
{
if(block != 0) switch(arch)
{
default:{}break;
case Architecture_x64:{((REGS_RegBlockX64 *)block)->rip.u64 = rip;}break;
case Architecture_x86:{((REGS_RegBlockX86 *)block)->eip.u32 = (U32)rip;}break;
case Arch_x64:{((REGS_RegBlockX64 *)block)->rip.u64 = rip;}break;
case Arch_x86:{((REGS_RegBlockX86 *)block)->eip.u32 = (U32)rip;}break;
}
}
internal void
regs_arch_block_write_rsp(Architecture arch, void *block, U64 rsp)
regs_arch_block_write_rsp(Arch arch, void *block, U64 rsp)
{
if(block != 0) switch(arch)
{
default:{}break;
case Architecture_x64:{((REGS_RegBlockX64 *)block)->rsp.u64 = rsp;}break;
case Architecture_x86:{((REGS_RegBlockX86 *)block)->esp.u32 = (U32)rsp;}break;
case Arch_x64:{((REGS_RegBlockX64 *)block)->rsp.u64 = rsp;}break;
case Arch_x86:{((REGS_RegBlockX86 *)block)->esp.u32 = (U32)rsp;}break;
}
}
+13 -13
View File
@@ -108,18 +108,18 @@ struct REGS_Slice
////////////////////////////////
//~ rjf: Helpers
internal U64 regs_block_size_from_architecture(Architecture arch);
internal U64 regs_reg_code_count_from_architecture(Architecture arch);
internal U64 regs_alias_code_count_from_architecture(Architecture arch);
internal String8 *regs_reg_code_string_table_from_architecture(Architecture arch);
internal String8 *regs_alias_code_string_table_from_architecture(Architecture arch);
internal REGS_Rng *regs_reg_code_rng_table_from_architecture(Architecture arch);
internal REGS_Slice *regs_alias_code_slice_table_from_architecture(Architecture arch);
internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_architecture(Architecture arch);
internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_architecture(Architecture arch);
internal U64 regs_rip_from_arch_block(Architecture arch, void *block);
internal U64 regs_rsp_from_arch_block(Architecture arch, void *block);
internal void regs_arch_block_write_rip(Architecture arch, void *block, U64 rip);
internal void regs_arch_block_write_rsp(Architecture arch, void *block, U64 rsp);
internal U64 regs_block_size_from_arch(Arch arch);
internal U64 regs_reg_code_count_from_arch(Arch arch);
internal U64 regs_alias_code_count_from_arch(Arch arch);
internal String8 *regs_reg_code_string_table_from_arch(Arch arch);
internal String8 *regs_alias_code_string_table_from_arch(Arch arch);
internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch);
internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch);
internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch);
internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch);
internal U64 regs_rip_from_arch_block(Arch arch, void *block);
internal U64 regs_rsp_from_arch_block(Arch arch, void *block);
internal void regs_arch_block_write_rip(Arch arch, void *block, U64 rip);
internal void regs_arch_block_write_rsp(Arch arch, void *block, U64 rsp);
#endif // REGS_H
+18 -18
View File
@@ -459,13 +459,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal U64 regs_block_size_from_architecture(Architecture arch)`;
`internal U64 regs_block_size_from_arch(Arch arch)`;
`{`;
`U64 result = 8;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = sizeof(REGS_RegBlock$(a.name));}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = sizeof(REGS_RegBlock$(a.name));}break;`;
`}`;
`return result;`;
`}`;
@@ -473,13 +473,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal U64 regs_reg_code_count_from_architecture(Architecture arch)`;
`internal U64 regs_reg_code_count_from_arch(Arch arch)`;
`{`;
`U64 result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = REGS_RegCode$(a.name)_COUNT;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = REGS_RegCode$(a.name)_COUNT;}break;`;
`}`;
`return result;`;
`}`;
@@ -487,13 +487,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal U64 regs_alias_code_count_from_architecture(Architecture arch)`;
`internal U64 regs_alias_code_count_from_arch(Arch arch)`;
`{`;
`U64 result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = REGS_AliasCode$(a.name)_COUNT;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = REGS_AliasCode$(a.name)_COUNT;}break;`;
`}`;
`return result;`;
`}`;
@@ -501,13 +501,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal String8 *regs_reg_code_string_table_from_architecture(Architecture arch)`;
`internal String8 *regs_reg_code_string_table_from_arch(Arch arch)`;
`{`;
`String8 *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_string_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_string_table;}break;`;
`}`;
`return result;`;
`}`;
@@ -515,13 +515,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal String8 *regs_alias_code_string_table_from_architecture(Architecture arch)`;
`internal String8 *regs_alias_code_string_table_from_arch(Arch arch)`;
`{`;
`String8 *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_string_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_string_table;}break;`;
`}`;
`return result;`;
`}`;
@@ -529,13 +529,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal REGS_Rng *regs_reg_code_rng_table_from_architecture(Architecture arch)`;
`internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch)`;
`{`;
`REGS_Rng *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_rng_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_rng_table;}break;`;
`}`;
`return result;`;
`}`;
@@ -543,13 +543,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal REGS_Slice *regs_alias_code_slice_table_from_architecture(Architecture arch)`;
`internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch)`;
`{`;
`REGS_Slice *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_slice_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_slice_table;}break;`;
`}`;
`return result;`;
`}`;
@@ -557,13 +557,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_architecture(Architecture arch)`;
`internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch)`;
`{`;
`REGS_UsageKind *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_usage_kind_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_usage_kind_table;}break;`;
`}`;
`return result;`;
`}`;
@@ -571,13 +571,13 @@ regs_g_reg_code_x86_usage_kind_table:
@c_file @gen
{
`internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_architecture(Architecture arch)`;
`internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch)`;
`{`;
`REGS_UsageKind *result = 0;`;
`switch(arch)`;
`{`;
`default:{}break;`;
@expand(REGS_ArchTable a) `case Architecture_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_usage_kind_table;}break;`;
@expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_usage_kind_table;}break;`;
`}`;
`return result;`;
`}`;