mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-07 08:25:41 +00:00
remove x86 register code
This commit is contained in:
@@ -47,7 +47,6 @@ cv_size_from_reg(CV_Arch arch, CV_Reg reg)
|
||||
{
|
||||
switch(arch)
|
||||
{
|
||||
case CV_Arch_8086: return cv_size_from_reg_x86(reg);
|
||||
case CV_Arch_X64 : return cv_size_from_reg_x64(reg);
|
||||
default: NotImplemented;
|
||||
}
|
||||
@@ -59,25 +58,12 @@ cv_is_reg_sp(CV_Arch arch, CV_Reg reg)
|
||||
{
|
||||
switch(arch)
|
||||
{
|
||||
case CV_Arch_8086: return reg == CV_Regx86_ESP;
|
||||
case CV_Arch_X64: return reg == CV_Regx64_RSP;
|
||||
default: NotImplemented;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal U64
|
||||
cv_size_from_reg_x86(CV_Reg reg)
|
||||
{
|
||||
switch(reg)
|
||||
{
|
||||
#define X(NAME, CODE, RDI_NAME, BYTE_POS, BYTE_SIZE) case CV_Regx86_##NAME: return BYTE_SIZE;
|
||||
CV_Reg_X86_XList(X)
|
||||
#undef X
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal U64
|
||||
cv_size_from_reg_x64(CV_Reg reg)
|
||||
{
|
||||
@@ -111,18 +97,6 @@ cv_decode_fp_reg(CV_Arch arch, CV_EncodedFramePtrReg encoded_reg)
|
||||
CV_Reg fp_reg = 0;
|
||||
switch (arch)
|
||||
{
|
||||
case CV_Arch_8086:
|
||||
{
|
||||
switch (encoded_reg)
|
||||
{
|
||||
case CV_EncodedFramePtrReg_None : break;
|
||||
case CV_EncodedFramePtrReg_StackPtr: AssertAlways(!"TODO: not tested, this is a guess");
|
||||
fp_reg = CV_Regx86_ESP; break;
|
||||
case CV_EncodedFramePtrReg_FramePtr: fp_reg = CV_Regx86_EBP; break;
|
||||
case CV_EncodedFramePtrReg_BasePtr : fp_reg = CV_Regx86_EBX; break;
|
||||
default: InvalidPath;
|
||||
}
|
||||
} break;
|
||||
case CV_Arch_X64:
|
||||
{
|
||||
switch (encoded_reg)
|
||||
@@ -144,14 +118,6 @@ cv_map_encoded_base_pointer(CV_Arch arch, U32 encoded_frame_reg)
|
||||
{
|
||||
U32 r = 0;
|
||||
switch (arch) {
|
||||
case CV_Arch_8086: {
|
||||
switch (encoded_frame_reg) {
|
||||
case 0: r = 0; break;
|
||||
case 1: r = CV_AllReg_VFRAME; break;
|
||||
case 2: r = CV_Regx86_EBP; break;
|
||||
case 3: r = CV_Regx86_EBX; break;
|
||||
}
|
||||
} break;
|
||||
case CV_Arch_X64: {
|
||||
switch (encoded_frame_reg) {
|
||||
case 0: r = 0; break;
|
||||
@@ -207,13 +173,6 @@ cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id)
|
||||
{
|
||||
String8 result = str8_zero();
|
||||
switch (arch) {
|
||||
case CV_Arch_8086: {
|
||||
switch (id) {
|
||||
#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break;
|
||||
CV_Reg_X86_XList(X)
|
||||
#undef X
|
||||
}
|
||||
} break;
|
||||
case CV_Arch_X64: {
|
||||
switch (id) {
|
||||
#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break;
|
||||
|
||||
@@ -41,261 +41,6 @@ read_only global CV_TypeId cv_type_id_variadic = 0xFFFFFFFF;
|
||||
////////////////////////////////
|
||||
//~ rjf: Registers
|
||||
|
||||
// X(NAME, CODE, (RDI_RegCode_X86) NAME, BYTE_POS, BYTE_SIZE)
|
||||
#define CV_Reg_X86_XList(X) \
|
||||
X(NONE, 0, nil, 0, 0) \
|
||||
X(AL, 1, eax, 0, 1) \
|
||||
X(CL, 2, ecx, 0, 1) \
|
||||
X(DL, 3, edx, 0, 1) \
|
||||
X(BL, 4, ebx, 0, 1) \
|
||||
X(AH, 5, eax, 1, 1) \
|
||||
X(CH, 6, ecx, 1, 1) \
|
||||
X(DH, 7, edx, 1, 1) \
|
||||
X(BH, 8, ebx, 1, 1) \
|
||||
X(AX, 9, eax, 0, 2) \
|
||||
X(CX, 10, ecx, 0, 2) \
|
||||
X(DX, 11, edx, 0, 2) \
|
||||
X(BX, 12, ebx, 0, 2) \
|
||||
X(SP, 13, esp, 0, 2) \
|
||||
X(BP, 14, ebp, 0, 2) \
|
||||
X(SI, 15, esi, 0, 2) \
|
||||
X(DI, 16, edi, 0, 2) \
|
||||
X(EAX, 17, eax, 0, 4) \
|
||||
X(ECX, 18, ecx, 0, 4) \
|
||||
X(EDX, 19, edx, 0, 4) \
|
||||
X(EBX, 20, ebx, 0, 4) \
|
||||
X(ESP, 21, esp, 0, 4) \
|
||||
X(EBP, 22, ebp, 0, 4) \
|
||||
X(ESI, 23, esi, 0, 4) \
|
||||
X(EDI, 24, edi, 0, 4) \
|
||||
X(ES, 25, es, 0, 2) \
|
||||
X(CS, 26, cs, 0, 2) \
|
||||
X(SS, 27, ss, 0, 2) \
|
||||
X(DS, 28, ds, 0, 2) \
|
||||
X(FS, 29, fs, 0, 2) \
|
||||
X(GS, 30, gs, 0, 2) \
|
||||
X(IP, 31, eip, 0, 2) \
|
||||
X(FLAGS, 32, eflags, 0, 2) \
|
||||
X(EIP, 33, eip, 0, 4) \
|
||||
X(EFLAGS, 34, eflags, 0, 4) \
|
||||
X(MM0, 146, st0, 0, 8) \
|
||||
X(MM1, 147, st1, 0, 8) \
|
||||
X(MM2, 148, st2, 0, 8) \
|
||||
X(MM3, 149, st3, 0, 8) \
|
||||
X(MM4, 150, st4, 0, 8) \
|
||||
X(MM5, 151, st5, 0, 8) \
|
||||
X(MM6, 152, st6, 0, 8) \
|
||||
X(MM7, 153, st7, 0, 8) \
|
||||
X(XMM0, 154, ymm0, 0, 16) \
|
||||
X(XMM1, 155, ymm1, 0, 16) \
|
||||
X(XMM2, 156, ymm2, 0, 16) \
|
||||
X(XMM3, 157, ymm3, 0, 16) \
|
||||
X(XMM4, 158, ymm4, 0, 16) \
|
||||
X(XMM5, 159, ymm5, 0, 16) \
|
||||
X(XMM6, 160, ymm6, 0, 16) \
|
||||
X(XMM7, 161, ymm7, 0, 16) \
|
||||
X(XMM00, 162, ymm0, 0, 4) \
|
||||
X(XMM01, 163, ymm0, 4, 4) \
|
||||
X(XMM02, 164, ymm0, 8, 4) \
|
||||
X(XMM03, 165, ymm0, 12, 4) \
|
||||
X(XMM10, 166, ymm1, 0, 4) \
|
||||
X(XMM11, 167, ymm1, 4, 4) \
|
||||
X(XMM12, 168, ymm1, 8, 4) \
|
||||
X(XMM13, 169, ymm1, 12, 4) \
|
||||
X(XMM20, 170, ymm2, 0, 4) \
|
||||
X(XMM21, 171, ymm2, 4, 4) \
|
||||
X(XMM22, 172, ymm2, 8, 4) \
|
||||
X(XMM23, 173, ymm2, 12, 4) \
|
||||
X(XMM30, 174, ymm3, 0, 4) \
|
||||
X(XMM31, 175, ymm3, 4, 4) \
|
||||
X(XMM32, 176, ymm3, 8, 4) \
|
||||
X(XMM33, 177, ymm3, 12, 4) \
|
||||
X(XMM40, 178, ymm4, 0, 4) \
|
||||
X(XMM41, 179, ymm4, 4, 4) \
|
||||
X(XMM42, 180, ymm4, 8, 4) \
|
||||
X(XMM43, 181, ymm4, 12, 4) \
|
||||
X(XMM50, 182, ymm5, 0, 4) \
|
||||
X(XMM51, 183, ymm5, 4, 4) \
|
||||
X(XMM52, 184, ymm5, 8, 4) \
|
||||
X(XMM53, 185, ymm5, 12, 4) \
|
||||
X(XMM60, 186, ymm6, 0, 4) \
|
||||
X(XMM61, 187, ymm6, 4, 4) \
|
||||
X(XMM62, 188, ymm6, 8, 4) \
|
||||
X(XMM63, 189, ymm6, 12, 4) \
|
||||
X(XMM70, 190, ymm7, 0, 4) \
|
||||
X(XMM71, 191, ymm7, 4, 4) \
|
||||
X(XMM72, 192, ymm7, 8, 4) \
|
||||
X(XMM73, 193, ymm7, 12, 4) \
|
||||
X(XMM0L, 194, ymm0, 0, 8) \
|
||||
X(XMM1L, 195, ymm1, 0, 8) \
|
||||
X(XMM2L, 196, ymm2, 0, 8) \
|
||||
X(XMM3L, 197, ymm3, 0, 8) \
|
||||
X(XMM4L, 198, ymm4, 0, 8) \
|
||||
X(XMM5L, 199, ymm5, 0, 8) \
|
||||
X(XMM6L, 200, ymm6, 0, 8) \
|
||||
X(XMM7L, 201, ymm7, 0, 8) \
|
||||
X(XMM0H, 202, ymm0, 8, 8) \
|
||||
X(XMM1H, 203, ymm1, 8, 8) \
|
||||
X(XMM2H, 204, ymm2, 8, 8) \
|
||||
X(XMM3H, 205, ymm3, 8, 8) \
|
||||
X(XMM4H, 206, ymm4, 8, 8) \
|
||||
X(XMM5H, 207, ymm5, 8, 8) \
|
||||
X(XMM6H, 208, ymm6, 8, 8) \
|
||||
X(XMM7H, 209, ymm7, 8, 8) \
|
||||
X(YMM0, 252, ymm0, 0, 32) \
|
||||
X(YMM1, 253, ymm1, 0, 32) \
|
||||
X(YMM2, 254, ymm2, 0, 32) \
|
||||
X(YMM3, 255, ymm3, 0, 32) \
|
||||
X(YMM4, 256, ymm4, 0, 32) \
|
||||
X(YMM5, 257, ymm5, 0, 32) \
|
||||
X(YMM6, 258, ymm6, 0, 32) \
|
||||
X(YMM7, 259, ymm7, 0, 32) \
|
||||
X(YMM0H, 260, ymm0, 16, 16) \
|
||||
X(YMM1H, 261, ymm1, 16, 16) \
|
||||
X(YMM2H, 262, ymm2, 16, 16) \
|
||||
X(YMM3H, 263, ymm3, 16, 16) \
|
||||
X(YMM4H, 264, ymm4, 16, 16) \
|
||||
X(YMM5H, 265, ymm5, 16, 16) \
|
||||
X(YMM6H, 266, ymm6, 16, 16) \
|
||||
X(YMM7H, 267, ymm7, 16, 16) \
|
||||
X(YMM0I0, 268, ymm0, 0, 8) \
|
||||
X(YMM0I1, 269, ymm0, 8, 8) \
|
||||
X(YMM0I2, 270, ymm0, 16, 8) \
|
||||
X(YMM0I3, 271, ymm0, 24, 8) \
|
||||
X(YMM1I0, 272, ymm1, 0, 8) \
|
||||
X(YMM1I1, 273, ymm1, 8, 8) \
|
||||
X(YMM1I2, 274, ymm1, 16, 8) \
|
||||
X(YMM1I3, 275, ymm1, 24, 8) \
|
||||
X(YMM2I0, 276, ymm2, 0, 8) \
|
||||
X(YMM2I1, 277, ymm2, 8, 8) \
|
||||
X(YMM2I2, 278, ymm2, 16, 8) \
|
||||
X(YMM2I3, 279, ymm2, 24, 8) \
|
||||
X(YMM3I0, 280, ymm3, 0, 8) \
|
||||
X(YMM3I1, 281, ymm3, 8, 8) \
|
||||
X(YMM3I2, 282, ymm3, 16, 8) \
|
||||
X(YMM3I3, 283, ymm3, 24, 8) \
|
||||
X(YMM4I0, 284, ymm4, 0, 8) \
|
||||
X(YMM4I1, 285, ymm4, 8, 8) \
|
||||
X(YMM4I2, 286, ymm4, 16, 8) \
|
||||
X(YMM4I3, 287, ymm4, 24, 8) \
|
||||
X(YMM5I0, 288, ymm5, 0, 8) \
|
||||
X(YMM5I1, 289, ymm5, 8, 8) \
|
||||
X(YMM5I2, 290, ymm5, 16, 8) \
|
||||
X(YMM5I3, 291, ymm5, 24, 8) \
|
||||
X(YMM6I0, 292, ymm6, 0, 8) \
|
||||
X(YMM6I1, 293, ymm6, 8, 8) \
|
||||
X(YMM6I2, 294, ymm6, 16, 8) \
|
||||
X(YMM6I3, 295, ymm6, 24, 8) \
|
||||
X(YMM7I0, 296, ymm7, 0, 8) \
|
||||
X(YMM7I1, 297, ymm7, 8, 8) \
|
||||
X(YMM7I2, 298, ymm7, 16, 8) \
|
||||
X(YMM7I3, 299, ymm7, 24, 8) \
|
||||
X(YMM0F0, 300, ymm0, 0, 4) \
|
||||
X(YMM0F1, 301, ymm0, 4, 4) \
|
||||
X(YMM0F2, 302, ymm0, 8, 4) \
|
||||
X(YMM0F3, 303, ymm0, 12, 4) \
|
||||
X(YMM0F4, 304, ymm0, 16, 4) \
|
||||
X(YMM0F5, 305, ymm0, 20, 4) \
|
||||
X(YMM0F6, 306, ymm0, 24, 4) \
|
||||
X(YMM0F7, 307, ymm0, 28, 4) \
|
||||
X(YMM1F0, 308, ymm1, 0, 4) \
|
||||
X(YMM1F1, 309, ymm1, 4, 4) \
|
||||
X(YMM1F2, 310, ymm1, 8, 4) \
|
||||
X(YMM1F3, 311, ymm1, 12, 4) \
|
||||
X(YMM1F4, 312, ymm1, 16, 4) \
|
||||
X(YMM1F5, 313, ymm1, 20, 4) \
|
||||
X(YMM1F6, 314, ymm1, 24, 4) \
|
||||
X(YMM1F7, 315, ymm1, 28, 4) \
|
||||
X(YMM2F0, 316, ymm2, 0, 4) \
|
||||
X(YMM2F1, 317, ymm2, 4, 4) \
|
||||
X(YMM2F2, 318, ymm2, 8, 4) \
|
||||
X(YMM2F3, 319, ymm2, 12, 4) \
|
||||
X(YMM2F4, 320, ymm2, 16, 4) \
|
||||
X(YMM2F5, 321, ymm2, 20, 4) \
|
||||
X(YMM2F6, 322, ymm2, 24, 4) \
|
||||
X(YMM2F7, 323, ymm2, 28, 4) \
|
||||
X(YMM3F0, 324, ymm3, 0, 4) \
|
||||
X(YMM3F1, 325, ymm3, 4, 4) \
|
||||
X(YMM3F2, 326, ymm3, 8, 4) \
|
||||
X(YMM3F3, 327, ymm3, 12, 4) \
|
||||
X(YMM3F4, 328, ymm3, 16, 4) \
|
||||
X(YMM3F5, 329, ymm3, 20, 4) \
|
||||
X(YMM3F6, 330, ymm3, 24, 4) \
|
||||
X(YMM3F7, 331, ymm3, 28, 4) \
|
||||
X(YMM4F0, 332, ymm4, 0, 4) \
|
||||
X(YMM4F1, 333, ymm4, 4, 4) \
|
||||
X(YMM4F2, 334, ymm4, 8, 4) \
|
||||
X(YMM4F3, 335, ymm4, 12, 4) \
|
||||
X(YMM4F4, 336, ymm4, 16, 4) \
|
||||
X(YMM4F5, 337, ymm4, 20, 4) \
|
||||
X(YMM4F6, 338, ymm4, 24, 4) \
|
||||
X(YMM4F7, 339, ymm4, 28, 4) \
|
||||
X(YMM5F0, 340, ymm5, 0, 4) \
|
||||
X(YMM5F1, 341, ymm5, 4, 4) \
|
||||
X(YMM5F2, 342, ymm5, 8, 4) \
|
||||
X(YMM5F3, 343, ymm5, 12, 4) \
|
||||
X(YMM5F4, 344, ymm5, 16, 4) \
|
||||
X(YMM5F5, 345, ymm5, 20, 4) \
|
||||
X(YMM5F6, 346, ymm5, 24, 4) \
|
||||
X(YMM5F7, 347, ymm5, 28, 4) \
|
||||
X(YMM6F0, 348, ymm6, 0, 4) \
|
||||
X(YMM6F1, 349, ymm6, 4, 4) \
|
||||
X(YMM6F2, 350, ymm6, 8, 4) \
|
||||
X(YMM6F3, 351, ymm6, 12, 4) \
|
||||
X(YMM6F4, 352, ymm6, 16, 4) \
|
||||
X(YMM6F5, 353, ymm6, 20, 4) \
|
||||
X(YMM6F6, 354, ymm6, 24, 4) \
|
||||
X(YMM6F7, 355, ymm6, 28, 4) \
|
||||
X(YMM7F0, 356, ymm7, 0, 4) \
|
||||
X(YMM7F1, 357, ymm7, 4, 4) \
|
||||
X(YMM7F2, 358, ymm7, 8, 4) \
|
||||
X(YMM7F3, 359, ymm7, 12, 4) \
|
||||
X(YMM7F4, 360, ymm7, 16, 4) \
|
||||
X(YMM7F5, 361, ymm7, 20, 4) \
|
||||
X(YMM7F6, 362, ymm7, 24, 4) \
|
||||
X(YMM7F7, 363, ymm7, 28, 4) \
|
||||
X(YMM0D0, 364, ymm0, 0, 8) \
|
||||
X(YMM0D1, 365, ymm0, 8, 8) \
|
||||
X(YMM0D2, 366, ymm0, 16, 8) \
|
||||
X(YMM0D3, 367, ymm0, 24, 8) \
|
||||
X(YMM1D0, 368, ymm1, 0, 8) \
|
||||
X(YMM1D1, 369, ymm1, 8, 8) \
|
||||
X(YMM1D2, 370, ymm1, 16, 8) \
|
||||
X(YMM1D3, 371, ymm1, 24, 8) \
|
||||
X(YMM2D0, 372, ymm2, 0, 8) \
|
||||
X(YMM2D1, 373, ymm2, 8, 8) \
|
||||
X(YMM2D2, 374, ymm2, 16, 8) \
|
||||
X(YMM2D3, 375, ymm2, 24, 8) \
|
||||
X(YMM3D0, 376, ymm3, 0, 8) \
|
||||
X(YMM3D1, 377, ymm3, 8, 8) \
|
||||
X(YMM3D2, 378, ymm3, 16, 8) \
|
||||
X(YMM3D3, 379, ymm3, 24, 8) \
|
||||
X(YMM4D0, 380, ymm4, 0, 8) \
|
||||
X(YMM4D1, 381, ymm4, 8, 8) \
|
||||
X(YMM4D2, 382, ymm4, 16, 8) \
|
||||
X(YMM4D3, 383, ymm4, 24, 8) \
|
||||
X(YMM5D0, 384, ymm5, 0, 8) \
|
||||
X(YMM5D1, 385, ymm5, 8, 8) \
|
||||
X(YMM5D2, 386, ymm5, 16, 8) \
|
||||
X(YMM5D3, 387, ymm5, 24, 8) \
|
||||
X(YMM6D0, 388, ymm6, 0, 8) \
|
||||
X(YMM6D1, 389, ymm6, 8, 8) \
|
||||
X(YMM6D2, 390, ymm6, 16, 8) \
|
||||
X(YMM6D3, 391, ymm6, 24, 8) \
|
||||
X(YMM7D0, 392, ymm7, 0, 8) \
|
||||
X(YMM7D1, 393, ymm7, 8, 8) \
|
||||
X(YMM7D2, 394, ymm7, 16, 8) \
|
||||
X(YMM7D3, 395, ymm7, 24, 8)
|
||||
|
||||
typedef U16 CV_Regx86;
|
||||
typedef enum CV_Regx86Enum
|
||||
{
|
||||
#define X(CVN,C,RDN,BP,BZ) CV_Regx86_##CVN = C,
|
||||
CV_Reg_X86_XList(X)
|
||||
#undef X
|
||||
}
|
||||
CV_Regx86Enum;
|
||||
|
||||
// X(NAME, CODE, (RDI_RegisterCode_X64) NAME, BYTE_POS, BYTE_SIZE)
|
||||
#define CV_Reg_X64_XList(X) \
|
||||
X(NONE, 0, nil, 0, 0) \
|
||||
@@ -2963,7 +2708,6 @@ struct CV_TypeIndexArray
|
||||
////////////////////////////////
|
||||
|
||||
internal CV_Arch cv_arch_from_coff_machine(COFF_MachineType machine);
|
||||
internal U64 cv_size_from_reg_x86(CV_Reg reg);
|
||||
internal U64 cv_size_from_reg_x64(CV_Reg reg);
|
||||
internal U64 cv_size_from_reg(CV_Arch arch, CV_Reg reg);
|
||||
internal B32 cv_is_reg_sp(CV_Arch arch, CV_Reg reg);
|
||||
|
||||
Reference in New Issue
Block a user