FD.io VPP  v20.05.1-6-gf53edbc3b
Vector Packet Processing
asm_x86.h File Reference
+ Include dependency graph for asm_x86.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  x86_insn_operand_t
 
struct  x86_insn_t
 
struct  x86_insn_parse_t
 

Macros

#define X86_INSN_FLAG_DEFAULT_64_BIT   (1 << 0)
 
#define X86_INSN_FLAG_SET_SSE_GROUP(n)   ((n) << 5)
 
#define X86_INSN_FLAG_GET_SSE_GROUP(f)   (((f) >> 5) & 0x1f)
 
#define X86_INSN_FLAG_SET_MODRM_REG_GROUP(n)   (((n) & 0x3f) << 10)
 
#define X86_INSN_FLAG_GET_MODRM_REG_GROUP(f)   (((f) >> 10) & 0x3f)
 
#define foreach_x86_legacy_prefix
 
#define foreach_x86_insn_parse_flag
 

Enumerations

enum  x86_insn_parse_flag_bit_t { foreach_x86_legacy_prefix }
 
enum  x86_insn_parse_flag_t { foreach_x86_legacy_prefix }
 

Functions

static uword x86_insn_operand_is_valid (x86_insn_t *i, uword o)
 
u8x86_insn_parse (x86_insn_parse_t *p, u8 *code_start)
 

Variables

format_function_t format_x86_insn_parse
 

Macro Definition Documentation

◆ foreach_x86_insn_parse_flag

#define foreach_x86_insn_parse_flag
Value:
/* Parse in 32/64-bit mode. */ \
_ (PARSE_32_BIT, 0) \
_ (PARSE_64_BIT, 0) \
_ (IS_ADDRESS, 0) \
/* regs[1/2] is a valid base/index register */ \
_ (HAS_BASE, 0) \
_ (HAS_INDEX, 0) \
/* rex w bit */ \
_ (OPERAND_SIZE_64, 0)

Definition at line 66 of file asm_x86.h.

◆ foreach_x86_legacy_prefix

foreach_x86_legacy_prefix
Value:
_ (OPERAND_SIZE, 0x66) \
_ (ADDRESS_SIZE, 0x67) \
_ (SEGMENT_CS, 0x2e) \
_ (SEGMENT_DS, 0x3e) \
_ (SEGMENT_ES, 0x26) \
_ (SEGMENT_FS, 0x64) \
_ (SEGMENT_GS, 0x65) \
_ (SEGMENT_SS, 0x36) \
_ (LOCK, 0xf0) \
_ (REPZ, 0xf3) \
_ (REPNZ, 0xf2)

Definition at line 53 of file asm_x86.h.

◆ X86_INSN_FLAG_DEFAULT_64_BIT

#define X86_INSN_FLAG_DEFAULT_64_BIT   (1 << 0)

Definition at line 39 of file asm_x86.h.

◆ X86_INSN_FLAG_GET_MODRM_REG_GROUP

#define X86_INSN_FLAG_GET_MODRM_REG_GROUP (   f)    (((f) >> 10) & 0x3f)

Definition at line 43 of file asm_x86.h.

◆ X86_INSN_FLAG_GET_SSE_GROUP

#define X86_INSN_FLAG_GET_SSE_GROUP (   f)    (((f) >> 5) & 0x1f)

Definition at line 41 of file asm_x86.h.

◆ X86_INSN_FLAG_SET_MODRM_REG_GROUP

#define X86_INSN_FLAG_SET_MODRM_REG_GROUP (   n)    (((n) & 0x3f) << 10)

Definition at line 42 of file asm_x86.h.

◆ X86_INSN_FLAG_SET_SSE_GROUP

#define X86_INSN_FLAG_SET_SSE_GROUP (   n)    ((n) << 5)

Definition at line 40 of file asm_x86.h.

Enumeration Type Documentation

◆ x86_insn_parse_flag_bit_t

Enumerator
foreach_x86_legacy_prefix 

Definition at line 77 of file asm_x86.h.

◆ x86_insn_parse_flag_t

Enumerator
foreach_x86_legacy_prefix 

Definition at line 84 of file asm_x86.h.

Function Documentation

◆ x86_insn_operand_is_valid()

static uword x86_insn_operand_is_valid ( x86_insn_t i,
uword  o 
)
inlinestatic

Definition at line 47 of file asm_x86.h.

+ Here is the caller graph for this function:

◆ x86_insn_parse()

u8* x86_insn_parse ( x86_insn_parse_t p,
u8 code_start 
)

Definition at line 1494 of file asm_x86.c.

+ Here is the call graph for this function:

Variable Documentation

◆ format_x86_insn_parse

format_function_t format_x86_insn_parse

Definition at line 115 of file asm_x86.h.