Path: blob/master/libs/capstone/arch/X86/X86BaseInfo.h
4389 views
//===-- X86BaseInfo.h - Top level definitions for X86 -------- --*- C++ -*-===//1//2// The LLVM Compiler Infrastructure3//4// This file is distributed under the University of Illinois Open Source5// License. See LICENSE.TXT for details.6//7//===----------------------------------------------------------------------===//8//9// This file contains small standalone helper functions and enum definitions for10// the X86 target useful for the compiler back-end and the MC libraries.11// As such, it deliberately does not include references to LLVM core12// code gen types, passes, etc..13//14//===----------------------------------------------------------------------===//1516#ifndef CS_X86_BASEINFO_H17#define CS_X86_BASEINFO_H1819/* Capstone Disassembly Engine */20/* By Nguyen Anh Quynh <[email protected]>, 2013-2019 */2122// Enums for memory operand decoding. Each memory operand is represented with23// a 5 operand sequence in the form:24// [BaseReg, ScaleAmt, IndexReg, Disp, Segment]25// These enums help decode this.26enum {27X86_AddrBaseReg = 0,28X86_AddrScaleAmt = 1,29X86_AddrIndexReg = 2,30X86_AddrDisp = 3,3132/// AddrSegmentReg - The operand # of the segment in the memory operand.33X86_AddrSegmentReg = 4,3435/// AddrNumOperands - Total number of operands in a memory reference.36X86_AddrNumOperands = 537};3839enum IPREFIXES {40X86_IP_NO_PREFIX = 0,41X86_IP_HAS_OP_SIZE = 1,42X86_IP_HAS_AD_SIZE = 2,43X86_IP_HAS_REPEAT_NE = 4,44X86_IP_HAS_REPEAT = 8,45X86_IP_HAS_LOCK = 16,46X86_IP_HAS_NOTRACK = 6447};4849#endif505152