Rizin
unix-like reverse engineering framework and cli tools
|
#include <rz_lib.h>
Go to the source code of this file.
Classes | |
struct | insn_oper_descr_t |
struct | insn_type_descr_t |
struct | insn_extra_t |
struct | insn_t |
Macros | |
#define | INSN_OPCODE_MASK (0x3fULL * 0x4000000) |
#define | INSN_OPCODE_SHIFT 26 |
#define | INSN_EMPTY_SHIFT 0 |
#define | INSN_EMPTY_MASK 0 |
#define | INSN_N_MASK 0x3ffffff |
#define | INSN_D_SHIFT 21 |
#define | INSN_D_MASK (0x1f * 0x200000) |
#define | INSN_K_MASK 0xffff |
#define | INSN_B_SHIFT 11 |
#define | INSN_B_MASK (0x1f * 0x800) |
#define | INSN_A_SHIFT 16 |
#define | INSN_A_MASK (0x1f * 0x10000) |
#define | INSN_I_MASK 0xffff |
#define | INSN_L_MASK 0x3f |
#define | INSN_K1_SHIFT 21 |
#define | INSN_K1_MASK (0x1f * 0x200000) |
#define | INSN_K2_MASK 0x7ff |
Typedefs | |
typedef enum insn_type | insn_type_t |
Enumerations | |
enum | insn_type { INSN_END = 0 , INSN_INVAL = 0 , INSN_X , INSN_N , INSN_DN , INSN_K , INSN_DK , INSN_D , INSN_B , INSN_AI , INSN_DAI , INSN_DAK , INSN_DAL , INSN_KABK , INSN_AB , INSN_DA , INSN_DAB , INSN_IABI , INSN_SIZE } |
enum | insn_oper_t { INSN_OPER_K1 , INSN_OPER_K2 , INSN_OPER_A , INSN_OPER_B , INSN_OPER_N , INSN_OPER_K , INSN_OPER_D , INSN_OPER_I , INSN_OPER_L , INSN_OPER_SIZE } |
Functions | |
insn_extra_t * | find_extra_descriptor (insn_extra_t *extra_descr, ut32 insn) |
ut32 | sign_extend (ut32 number, ut32 mask) |
Performs sign extension of number. More... | |
static ut32 | get_operand_mask (insn_type_descr_t *type_descr, insn_oper_t operand) |
static ut32 | get_operand_shift (insn_type_descr_t *type_descr, insn_oper_t operand) |
static ut32 | get_operand_value (ut32 insn, insn_type_descr_t *type_descr, insn_oper_t operand) |
static int | has_type_descriptor (insn_type_t type) |
static int | is_type_descriptor_defined (insn_type_t type) |
static insn_type_t | type_of_opcode (insn_t *descr, insn_extra_t *extra_descr) |
Variables | |
insn_type_descr_t | types [] |
size_t | types_count |
insn_extra_t | extra_0x5 [] |
insn_extra_t | extra_0x6 [] |
insn_extra_t | extra_0x8 [] |
insn_extra_t | extra_0x2e [] |
insn_extra_t | extra_0x2f [] |
insn_extra_t | extra_0x31 [] |
insn_extra_t | extra_0x32 [] |
insn_extra_t | extra_0x38 [] |
insn_extra_t | extra_0x39 [] |
insn_t | or1k_insns [] |
size_t | insns_count |
#define INSN_A_MASK (0x1f * 0x10000) |
Mask for A operand
Definition at line 36 of file or1k_disas.h.
#define INSN_A_SHIFT 16 |
Shift for A operand
Definition at line 34 of file or1k_disas.h.
#define INSN_B_MASK (0x1f * 0x800) |
Mask for B operand
Definition at line 31 of file or1k_disas.h.
#define INSN_B_SHIFT 11 |
Shift for B operand
Definition at line 29 of file or1k_disas.h.
#define INSN_D_MASK (0x1f * 0x200000) |
Mask for D operand
Definition at line 23 of file or1k_disas.h.
#define INSN_D_SHIFT 21 |
Shift for D operand
Definition at line 21 of file or1k_disas.h.
#define INSN_EMPTY_MASK 0 |
Definition at line 15 of file or1k_disas.h.
#define INSN_EMPTY_SHIFT 0 |
Empty mask for unused operands
Definition at line 14 of file or1k_disas.h.
#define INSN_I_MASK 0xffff |
Mask for I operand
Definition at line 39 of file or1k_disas.h.
#define INSN_K1_MASK (0x1f * 0x200000) |
Mask for first K operand
Definition at line 47 of file or1k_disas.h.
#define INSN_K1_SHIFT 21 |
Shift for first K operand
Definition at line 45 of file or1k_disas.h.
#define INSN_K2_MASK 0x7ff |
Mask for second K operand
Definition at line 50 of file or1k_disas.h.
#define INSN_K_MASK 0xffff |
Mask for K operand
Definition at line 26 of file or1k_disas.h.
#define INSN_L_MASK 0x3f |
Mask for L operand
Definition at line 42 of file or1k_disas.h.
#define INSN_N_MASK 0x3ffffff |
Mask for N operand
Definition at line 18 of file or1k_disas.h.
#define INSN_OPCODE_MASK (0x3fULL * 0x4000000) |
Default mask for opcode
Definition at line 10 of file or1k_disas.h.
#define INSN_OPCODE_SHIFT 26 |
Definition at line 11 of file or1k_disas.h.
typedef enum insn_type insn_type_t |
enum insn_oper_t |
Definition at line 80 of file or1k_disas.h.
enum insn_type |
Definition at line 52 of file or1k_disas.h.
insn_extra_t* find_extra_descriptor | ( | insn_extra_t * | extra_descr, |
ut32 | insn | ||
) |
Definition at line 288 of file or1k_disas.c.
References INSN_END, NULL, insn_extra_t::opcode, insn_extra_t::opcode_mask, and insn_extra_t::type.
Referenced by disassemble(), and or1k_op().
|
inlinestatic |
Definition at line 152 of file or1k_disas.h.
References insn_oper_descr_t::mask, and insn_type_descr_t::operands.
Referenced by get_operand_value(), insn_to_op(), and insn_to_str().
|
inlinestatic |
Definition at line 156 of file or1k_disas.h.
References insn_type_descr_t::operands, and insn_oper_descr_t::shift.
Referenced by get_operand_value().
|
inlinestatic |
Definition at line 160 of file or1k_disas.h.
References get_operand_mask(), and get_operand_shift().
Referenced by insn_to_op(), and insn_to_str().
|
inlinestatic |
Definition at line 164 of file or1k_disas.h.
References type, types, and types_count.
Referenced by insn_to_op(), and insn_to_str().
|
inlinestatic |
Definition at line 168 of file or1k_disas.h.
References type, insn_type_descr_t::type, and types.
Referenced by insn_to_op(), and insn_to_str().
Performs sign extension of number.
number | number to extend |
mask | mask under which number is placed |
If mask does not begin on the lsb, space on the right will also be filled with ones
Definition at line 304 of file or1k_disas.c.
References mask.
|
inlinestatic |
Definition at line 172 of file or1k_disas.h.
References INSN_END, NULL, rz_return_val_if_fail, insn_extra_t::type, and insn_t::type.
Referenced by insn_to_op(), and insn_to_str().
|
extern |
Definition at line 98 of file or1k_disas.c.
|
extern |
Definition at line 106 of file or1k_disas.c.
|
extern |
Definition at line 120 of file or1k_disas.c.
|
extern |
Definition at line 128 of file or1k_disas.c.
|
extern |
Definition at line 176 of file or1k_disas.c.
|
extern |
Definition at line 205 of file or1k_disas.c.
|
extern |
Definition at line 78 of file or1k_disas.c.
|
extern |
Definition at line 83 of file or1k_disas.c.
|
extern |
Definition at line 89 of file or1k_disas.c.
|
extern |
Definition at line 286 of file or1k_disas.c.
Referenced by disassemble(), and or1k_op().
|
extern |
Definition at line 219 of file or1k_disas.c.
Referenced by disassemble(), and or1k_op().
|
extern |
Definition at line 7 of file or1k_disas.c.
Referenced by file_ascmagic(), has_type_descriptor(), insn_to_op(), insn_to_str(), is_type_descriptor_defined(), is_valid_omf_type(), lzh_decompress(), parse_real(), pdb_types_print_json(), pdb_types_print_standard(), rz_analysis_type_links(), rz_bin_wasm_get_types(), rz_core_analysis_address(), rz_core_fortune_get_random(), rz_core_fortune_list(), rz_core_types_print_all(), rz_type_db_all(), rz_type_db_get_base_types(), rz_type_db_get_base_types_of_kind(), rz_type_db_get_by_offset(), rz_type_parser_init(), rz_type_typeclass_get_all(), rz_type_typeclass_get_all_sized(), type_match(), and types_xrefs_all().
|
extern |
Definition at line 76 of file or1k_disas.c.
Referenced by has_type_descriptor().