fcml  1.2.2
Public Attributes | List of all members
fcml_st_instruction_details Struct Reference

Additional instruction details provided by disassembler. More...

#include <fcml_disassembler.h>

Collaboration diagram for fcml_st_instruction_details:
Collaboration graph
[legend]

Public Attributes

fcml_bool is_shortcut
 True if this is a shortcut. More...
 
fcml_bool is_pseudo_op
 True if given instruction is a short form of pseudo-ops instructions. More...
 
fcml_uint8_t instruction_code [FCML_INSTRUCTION_SIZE]
 Code of the disassembled instruction. More...
 
fcml_usize instruction_size
 Instruction size in bytes. More...
 
fcml_st_prefixes_details prefixes_details
 Some additional information about decoded instruction prefixes. More...
 
fcml_st_operand_details operand_details [FCML_OPERANDS_COUNT]
 All disassembler specific information about operands going there. More...
 
fcml_st_decoded_modrm_details modrm_details
 Details about decoded ModR/M and SIB bytes. More...
 
fcml_bool opcode_field_s_bit
 Opcode field 's'. More...
 
fcml_bool opcode_field_w_bit
 Opcode field 'w'. More...
 
fcml_en_instruction instruction
 Instruction code/number. More...
 
fcml_en_pseudo_operations pseudo_op
 Pseudo operation code. More...
 
fcml_uint16_t addr_mode
 Code of the instruction form/addressing mode of the instruction above. More...
 
fcml_uint64_t instruction_group
 Instruction group. More...
 
fcml_uint8_t tuple_type
 avx-512 tuple type
 

Detailed Description

Additional instruction details provided by disassembler.

Member Data Documentation

◆ addr_mode

fcml_uint16_t fcml_st_instruction_details::addr_mode

Code of the instruction form/addressing mode of the instruction above.

◆ instruction

fcml_en_instruction fcml_st_instruction_details::instruction

Instruction code/number.

See also
fcml_instructions.h header file.

◆ instruction_code

fcml_uint8_t fcml_st_instruction_details::instruction_code[FCML_INSTRUCTION_SIZE]

Code of the disassembled instruction.

◆ instruction_group

fcml_uint64_t fcml_st_instruction_details::instruction_group

Instruction group.

◆ instruction_size

fcml_usize fcml_st_instruction_details::instruction_size

Instruction size in bytes.

◆ is_pseudo_op

fcml_bool fcml_st_instruction_details::is_pseudo_op

True if given instruction is a short form of pseudo-ops instructions.

See 'vcmpunordsd' for instance.

◆ is_shortcut

fcml_bool fcml_st_instruction_details::is_shortcut

True if this is a shortcut.

A good example of such instruction is 'cmpsb' as opposed to 'cmps byte ptr [si],byte ptr [di]'. It is very important to take this information into consideration when instruction models are analyzed because there is no operands in the GIM for shortcuts.

◆ modrm_details

fcml_st_decoded_modrm_details fcml_st_instruction_details::modrm_details

Details about decoded ModR/M and SIB bytes.

◆ opcode_field_s_bit

fcml_bool fcml_st_instruction_details::opcode_field_s_bit

Opcode field 's'.

This is set only for informational purpose only and you should not use it for any critical functionality.

◆ opcode_field_w_bit

fcml_bool fcml_st_instruction_details::opcode_field_w_bit

Opcode field 'w'.

This is set only for informational purpose only and you should not use it for any critical functionality.

◆ operand_details

fcml_st_operand_details fcml_st_instruction_details::operand_details[FCML_OPERANDS_COUNT]

All disassembler specific information about operands going there.

◆ prefixes_details

fcml_st_prefixes_details fcml_st_instruction_details::prefixes_details

Some additional information about decoded instruction prefixes.

◆ pseudo_op

fcml_en_pseudo_operations fcml_st_instruction_details::pseudo_op

Pseudo operation code.


The documentation for this struct was generated from the following file: