mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-24 12:44:59 -07:00
opcodes for encoding partial values
This commit is contained in:
@@ -92,7 +92,7 @@ RDI_U8 rdi_section_is_required_table[37] =
|
||||
0,
|
||||
};
|
||||
|
||||
RDI_U16 rdi_eval_op_ctrlbits_table[50] =
|
||||
RDI_U16 rdi_eval_op_ctrlbits_table[52] =
|
||||
{
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
@@ -143,6 +143,8 @@ RDI_EVAL_CTRLBITS(1, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(8, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
};
|
||||
|
||||
|
||||
@@ -489,7 +489,9 @@ RDI_EvalOp_Insert = 45,
|
||||
RDI_EvalOp_ValueRead = 46,
|
||||
RDI_EvalOp_ByteSwap = 47,
|
||||
RDI_EvalOp_CallSiteValue = 48,
|
||||
RDI_EvalOp_COUNT = 49,
|
||||
RDI_EvalOp_PartialValue = 49,
|
||||
RDI_EvalOp_PartialValueBit = 50,
|
||||
RDI_EvalOp_COUNT = 51,
|
||||
} RDI_EvalOpEnum;
|
||||
|
||||
typedef RDI_U8 RDI_EvalTypeGroup;
|
||||
@@ -1068,6 +1070,8 @@ X(Insert)\
|
||||
X(ValueRead)\
|
||||
X(ByteSwap)\
|
||||
X(CallSiteValue)\
|
||||
X(PartialValue)\
|
||||
X(PartialValueBit)\
|
||||
|
||||
#define RDI_EvalTypeGroup_XList \
|
||||
X(Other)\
|
||||
@@ -1539,6 +1543,6 @@ RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConver
|
||||
|
||||
extern RDI_U16 rdi_section_element_size_table[37];
|
||||
extern RDI_U8 rdi_section_is_required_table[37];
|
||||
extern RDI_U16 rdi_eval_op_ctrlbits_table[50];
|
||||
extern RDI_U16 rdi_eval_op_ctrlbits_table[52];
|
||||
|
||||
#endif // RDI_FORMAT_H
|
||||
|
||||
@@ -1245,56 +1245,58 @@ RDI_LocationRegMemberTable:
|
||||
@table(name value num_decodes num_pops num_pushes)
|
||||
RDI_EvalOpTable:
|
||||
{
|
||||
{Stop 0 0 0 0}
|
||||
{Noop 1 0 0 0}
|
||||
{Cond 2 1 1 0}
|
||||
{Skip 3 2 0 0}
|
||||
{MemRead 4 1 1 1}
|
||||
{RegRead 5 4 0 1}
|
||||
{RegReadDyn 6 0 1 1}
|
||||
{FrameOff 7 8 0 1}
|
||||
{ModuleOff 8 4 0 1}
|
||||
{TLSOff 9 4 0 1}
|
||||
{ObjectOff 10 0 0 0}
|
||||
{CFA 11 0 0 0}
|
||||
{ConstU8 12 1 0 1}
|
||||
{ConstU16 13 2 0 1}
|
||||
{ConstU32 14 4 0 1}
|
||||
{ConstU64 15 8 0 1}
|
||||
{ConstU128 16 16 0 1}
|
||||
{ConstString 17 1 0 1}
|
||||
{Abs 18 1 1 1}
|
||||
{Neg 19 1 1 1}
|
||||
{Add 20 1 2 1}
|
||||
{Sub 21 1 2 1}
|
||||
{Mul 22 1 2 1}
|
||||
{Div 23 1 2 1}
|
||||
{Mod 24 1 2 1}
|
||||
{LShift 25 1 2 1}
|
||||
{RShift 26 1 2 1}
|
||||
{BitAnd 27 1 2 1}
|
||||
{BitOr 28 1 2 1}
|
||||
{BitXor 29 1 2 1}
|
||||
{BitNot 30 1 1 1}
|
||||
{LogAnd 31 1 2 1}
|
||||
{LogOr 32 1 2 1}
|
||||
{LogNot 33 1 1 1}
|
||||
{EqEq 34 1 2 1}
|
||||
{NtEq 35 1 2 1}
|
||||
{LsEq 36 1 2 1}
|
||||
{GrEq 37 1 2 1}
|
||||
{Less 38 1 2 1}
|
||||
{Grtr 39 1 2 1}
|
||||
{Trunc 40 1 1 1}
|
||||
{TruncSigned 41 1 1 1}
|
||||
{Convert 42 2 1 1}
|
||||
{Pick 43 1 0 1}
|
||||
{Pop 44 0 1 0}
|
||||
{Insert 45 1 0 0}
|
||||
{ValueRead 46 1 2 1}
|
||||
{ByteSwap 47 1 1 1}
|
||||
{CallSiteValue 48 4 0 0}
|
||||
{COUNT 49 0 0 0}
|
||||
{Stop 0 0 0 0}
|
||||
{Noop 1 0 0 0}
|
||||
{Cond 2 1 1 0}
|
||||
{Skip 3 2 0 0}
|
||||
{MemRead 4 1 1 1}
|
||||
{RegRead 5 4 0 1}
|
||||
{RegReadDyn 6 0 1 1}
|
||||
{FrameOff 7 8 0 1}
|
||||
{ModuleOff 8 4 0 1}
|
||||
{TLSOff 9 4 0 1}
|
||||
{ObjectOff 10 0 0 0}
|
||||
{CFA 11 0 0 0}
|
||||
{ConstU8 12 1 0 1}
|
||||
{ConstU16 13 2 0 1}
|
||||
{ConstU32 14 4 0 1}
|
||||
{ConstU64 15 8 0 1}
|
||||
{ConstU128 16 16 0 1}
|
||||
{ConstString 17 1 0 1}
|
||||
{Abs 18 1 1 1}
|
||||
{Neg 19 1 1 1}
|
||||
{Add 20 1 2 1}
|
||||
{Sub 21 1 2 1}
|
||||
{Mul 22 1 2 1}
|
||||
{Div 23 1 2 1}
|
||||
{Mod 24 1 2 1}
|
||||
{LShift 25 1 2 1}
|
||||
{RShift 26 1 2 1}
|
||||
{BitAnd 27 1 2 1}
|
||||
{BitOr 28 1 2 1}
|
||||
{BitXor 29 1 2 1}
|
||||
{BitNot 30 1 1 1}
|
||||
{LogAnd 31 1 2 1}
|
||||
{LogOr 32 1 2 1}
|
||||
{LogNot 33 1 1 1}
|
||||
{EqEq 34 1 2 1}
|
||||
{NtEq 35 1 2 1}
|
||||
{LsEq 36 1 2 1}
|
||||
{GrEq 37 1 2 1}
|
||||
{Less 38 1 2 1}
|
||||
{Grtr 39 1 2 1}
|
||||
{Trunc 40 1 1 1}
|
||||
{TruncSigned 41 1 1 1}
|
||||
{Convert 42 2 1 1}
|
||||
{Pick 43 1 0 1}
|
||||
{Pop 44 0 1 0}
|
||||
{Insert 45 1 0 0}
|
||||
{ValueRead 46 1 2 1}
|
||||
{ByteSwap 47 1 1 1}
|
||||
{CallSiteValue 48 4 0 0}
|
||||
{PartialValue 49 4 0 0}
|
||||
{PartialValueBit 50 8 0 0}
|
||||
{COUNT 51 0 0 0}
|
||||
}
|
||||
|
||||
// NOTE(rjf): "ck" -> "conversion kind, when converted to type group", used in square matrix form
|
||||
|
||||
Reference in New Issue
Block a user