mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-02 12:08:11 +00:00
added rest of XMM registers, more progress on converting expressions front
This commit is contained in:
@@ -1,6 +1,70 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
internal U64
|
||||
dw_reg_size_from_code_x86(U64 reg_code)
|
||||
{
|
||||
switch (reg_code) {
|
||||
#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return reg_size;
|
||||
DW_Regs_X86_XList(X)
|
||||
#undef X
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal U64
|
||||
dw_reg_pos_from_code_x86(U64 reg_code)
|
||||
{
|
||||
switch (reg_code) {
|
||||
#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return reg_pos;
|
||||
DW_Regs_X86_XList(X)
|
||||
#undef X
|
||||
}
|
||||
return max_U64;
|
||||
}
|
||||
|
||||
internal U64
|
||||
dw_reg_size_from_code_x64(U64 reg_code)
|
||||
{
|
||||
switch (reg_code) {
|
||||
#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return reg_size;
|
||||
DW_Regs_X64_XList(X)
|
||||
#undef X
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal U64
|
||||
dw_reg_pos_from_code_x64(U64 reg_code)
|
||||
{
|
||||
switch (reg_code) {
|
||||
#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return reg_pos;
|
||||
DW_Regs_X64_XList(X)
|
||||
#undef X
|
||||
}
|
||||
return max_U64;
|
||||
}
|
||||
|
||||
internal U64
|
||||
dw_reg_size_from_code(RDI_Arch arch, U64 reg_code)
|
||||
{
|
||||
switch (arch) {
|
||||
case RDI_Arch_X86: return dw_reg_size_from_code_x86(reg_code);
|
||||
case RDI_Arch_X64: return dw_reg_size_from_code_x64(reg_code);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal U64
|
||||
dw_reg_pos_from_code(RDI_Arch arch, U64 reg_code)
|
||||
{
|
||||
switch (arch) {
|
||||
case RDI_Arch_X86: return dw_reg_pos_from_code_x86(reg_code);
|
||||
case RDI_Arch_X64: return dw_reg_pos_from_code_x64(reg_code);
|
||||
}
|
||||
return max_U64;
|
||||
}
|
||||
|
||||
internal DW_AttribClass
|
||||
dw_attrib_class_from_attrib_kind_v2(DW_AttribKind k)
|
||||
{
|
||||
|
||||
@@ -1670,6 +1670,22 @@ typedef enum DW_ExprOpEnum
|
||||
X(Xmm13, 30, zmm13, 0, 16) \
|
||||
X(Xmm14, 31, zmm14, 0, 16) \
|
||||
X(Xmm15, 32, zmm15, 0, 16) \
|
||||
X(Xmm16, 67, zmm16, 0, 16) \
|
||||
X(Xmm17, 68, zmm17, 0, 16) \
|
||||
X(Xmm18, 69, zmm18, 0, 16) \
|
||||
X(Xmm19, 70, zmm19, 0, 16) \
|
||||
X(Xmm20, 71, zmm20, 0, 16) \
|
||||
X(Xmm21, 72, zmm21, 0, 16) \
|
||||
X(Xmm22, 73, zmm22, 0, 16) \
|
||||
X(Xmm23, 74, zmm23, 0, 16) \
|
||||
X(Xmm24, 75, zmm24, 0, 16) \
|
||||
X(Xmm25, 76, zmm25, 0, 16) \
|
||||
X(Xmm26, 77, zmm26, 0, 16) \
|
||||
X(Xmm27, 78, zmm27, 0, 16) \
|
||||
X(Xmm28, 79, zmm28, 0, 16) \
|
||||
X(Xmm29, 80, zmm29, 0, 16) \
|
||||
X(Xmm30, 81, zmm30, 0, 16) \
|
||||
X(Xmm31, 82, zmm31, 0, 16) \
|
||||
X(St0, 33, st0, 0, 10) \
|
||||
X(St1, 34, st1, 0, 10) \
|
||||
X(St2, 35, st2, 0, 10) \
|
||||
@@ -1718,6 +1734,13 @@ typedef enum DW_RegX64Enum
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
internal U64 dw_reg_size_from_code_x86(U64 reg_code);
|
||||
internal U64 dw_reg_pos_from_code_x86(U64 reg_code);
|
||||
internal U64 dw_reg_size_from_code_x64(U64 reg_code);
|
||||
internal U64 dw_reg_pos_from_code_x64(U64 reg_code);
|
||||
internal U64 dw_reg_size_from_code(Arch arch, U64 reg_code);
|
||||
internal U64 dw_reg_pos_from_code(Arch arch, U64 reg_code);
|
||||
|
||||
//- Attrib Class Encodings
|
||||
|
||||
// Speced Encodings
|
||||
|
||||
Reference in New Issue
Block a user