Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
xbyak.h File Reference

Xbyak ; JIT assembler for x86(IA32)/x64 by C++. More...

#include <stdio.h>
#include <assert.h>
#include <list>
#include <string>
#include <algorithm>
#include <iostream>
#include <map>
#include <stdint.h>
#include "xbyak_mnemonic.h"
Include dependency graph for xbyak.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Xbyak::Error
 
struct  Xbyak::Allocator
 
class  Xbyak::Operand
 
class  Xbyak::Reg
 
struct  Xbyak::Reg8
 
struct  Xbyak::Reg16
 
struct  Xbyak::Mmx
 
struct  Xbyak::EvexModifierRounding
 
struct  Xbyak::EvexModifierZero
 
struct  Xbyak::Xmm
 
struct  Xbyak::Ymm
 
struct  Xbyak::Zmm
 
struct  Xbyak::Opmask
 
struct  Xbyak::BoundsReg
 
struct  Xbyak::Fpu
 
struct  Xbyak::Reg32e
 
struct  Xbyak::Reg32
 
class  Xbyak::Segment
 
class  Xbyak::RegExp
 
class  Xbyak::CodeArray
 
class  Xbyak::Address
 
class  Xbyak::AddressFrame
 
struct  Xbyak::JmpLabel
 
class  Xbyak::Label
 
class  Xbyak::LabelManager
 
class  Xbyak::CodeGenerator
 

Namespaces

namespace  Xbyak
 
namespace  Xbyak::inner
 
namespace  Xbyak::util
 

Macros

#define XBYAK_XBYAK_H_
 
#define XBYAK_GNUC_PREREQ(major, minor)
 
#define XBYAK_STD_UNORDERED_MAP   std::map
 
#define XBYAK_STD_UNORDERED_MULTIMAP   std::multimap
 
#define XBYAK32
 
#define MIE_INTEGER_TYPE_DEFINED
 
#define MIE_ALIGN(x)
 
#define MIE_PACK(x, y, z, w)
 

Typedefs

typedef uint64_t Xbyak::uint64
 
typedef int64_t Xbyak::sint64
 
typedef unsigned int Xbyak::uint32
 
typedef unsigned short Xbyak::uint16
 

Enumerations

enum  { Xbyak::DEFAULT_MAX_CODE_SIZE = 4096 , Xbyak::VERSION = 0x5630 }
 
enum  {
  Xbyak::ERR_NONE = 0 , Xbyak::ERR_BAD_ADDRESSING , Xbyak::ERR_CODE_IS_TOO_BIG , Xbyak::ERR_BAD_SCALE ,
  Xbyak::ERR_ESP_CANT_BE_INDEX , Xbyak::ERR_BAD_COMBINATION , Xbyak::ERR_BAD_SIZE_OF_REGISTER , Xbyak::ERR_IMM_IS_TOO_BIG ,
  Xbyak::ERR_BAD_ALIGN , Xbyak::ERR_LABEL_IS_REDEFINED , Xbyak::ERR_LABEL_IS_TOO_FAR , Xbyak::ERR_LABEL_IS_NOT_FOUND ,
  Xbyak::ERR_CODE_ISNOT_COPYABLE , Xbyak::ERR_BAD_PARAMETER , Xbyak::ERR_CANT_PROTECT , Xbyak::ERR_CANT_USE_64BIT_DISP ,
  Xbyak::ERR_OFFSET_IS_TOO_BIG , Xbyak::ERR_MEM_SIZE_IS_NOT_SPECIFIED , Xbyak::ERR_BAD_MEM_SIZE , Xbyak::ERR_BAD_ST_COMBINATION ,
  Xbyak::ERR_OVER_LOCAL_LABEL , Xbyak::ERR_UNDER_LOCAL_LABEL , Xbyak::ERR_CANT_ALLOC , Xbyak::ERR_ONLY_T_NEAR_IS_SUPPORTED_IN_AUTO_GROW ,
  Xbyak::ERR_BAD_PROTECT_MODE , Xbyak::ERR_BAD_PNUM , Xbyak::ERR_BAD_TNUM , Xbyak::ERR_BAD_VSIB_ADDRESSING ,
  Xbyak::ERR_CANT_CONVERT , Xbyak::ERR_LABEL_ISNOT_SET_BY_L , Xbyak::ERR_LABEL_IS_ALREADY_SET_BY_L , Xbyak::ERR_BAD_LABEL_STR ,
  Xbyak::ERR_MUNMAP , Xbyak::ERR_OPMASK_IS_ALREADY_SET , Xbyak::ERR_ROUNDING_IS_ALREADY_SET , Xbyak::ERR_K0_IS_INVALID ,
  Xbyak::ERR_EVEX_IS_INVALID , Xbyak::ERR_SAE_IS_INVALID , Xbyak::ERR_ER_IS_INVALID , Xbyak::ERR_INVALID_BROADCAST ,
  Xbyak::ERR_INVALID_OPMASK_WITH_MEMORY , Xbyak::ERR_INVALID_ZERO , Xbyak::ERR_INVALID_RIP_IN_AUTO_GROW , Xbyak::ERR_INVALID_MIB_ADDRESS ,
  Xbyak::ERR_INTERNAL
}
 
enum  Xbyak::inner::LabelMode { Xbyak::inner::LasIs , Xbyak::inner::Labs , Xbyak::inner::LaddTop }
 

Functions

const char * Xbyak::ConvertErrorToString (const Error &err)
 
void * Xbyak::AlignedMalloc (size_t size, size_t alignment)
 
void Xbyak::AlignedFree (void *p)
 
template<class To , class From >
const To Xbyak::CastTo (From p) throw ()
 
bool Xbyak::inner::IsInDisp8 (uint32 x)
 
bool Xbyak::inner::IsInInt32 (uint64 x)
 
uint32 Xbyak::inner::VerifyInInt32 (uint64 x)
 
template<class T >
T Xbyak::operator| (const T &x, const Opmask &k)
 
template<class T >
T Xbyak::operator| (const T &x, const EvexModifierZero &)
 
template<class T >
T Xbyak::operator| (const T &x, const EvexModifierRounding &emr)
 
RegExp Xbyak::operator+ (const RegExp &a, const RegExp &b)
 
RegExp Xbyak::operator* (const Reg &r, int scale)
 
RegExp Xbyak::operator- (const RegExp &e, size_t disp)
 
static const Mmx Xbyak::util::mm1 (1)
 
static const Mmx Xbyak::util::mm2 (2)
 
static const Mmx Xbyak::util::mm3 (3)
 
static const Mmx Xbyak::util::mm4 (4)
 
static const Mmx Xbyak::util::mm5 (5)
 
static const Mmx Xbyak::util::mm6 (6)
 
static const Mmx Xbyak::util::mm7 (7)
 
static const Xmm Xbyak::util::xmm1 (1)
 
static const Xmm Xbyak::util::xmm2 (2)
 
static const Xmm Xbyak::util::xmm3 (3)
 
static const Xmm Xbyak::util::xmm4 (4)
 
static const Xmm Xbyak::util::xmm5 (5)
 
static const Xmm Xbyak::util::xmm6 (6)
 
static const Xmm Xbyak::util::xmm7 (7)
 
static const Ymm Xbyak::util::ymm1 (1)
 
static const Ymm Xbyak::util::ymm2 (2)
 
static const Ymm Xbyak::util::ymm3 (3)
 
static const Ymm Xbyak::util::ymm4 (4)
 
static const Ymm Xbyak::util::ymm5 (5)
 
static const Ymm Xbyak::util::ymm6 (6)
 
static const Ymm Xbyak::util::ymm7 (7)
 
static const Zmm Xbyak::util::zmm1 (1)
 
static const Zmm Xbyak::util::zmm2 (2)
 
static const Zmm Xbyak::util::zmm3 (3)
 
static const Zmm Xbyak::util::zmm4 (4)
 
static const Zmm Xbyak::util::zmm5 (5)
 
static const Zmm Xbyak::util::zmm6 (6)
 
static const Zmm Xbyak::util::zmm7 (7)
 
static const Reg32 Xbyak::util::ecx (Operand::ECX)
 
static const Reg32 Xbyak::util::edx (Operand::EDX)
 
static const Reg32 Xbyak::util::ebx (Operand::EBX)
 
static const Reg32 Xbyak::util::esp (Operand::ESP)
 
static const Reg32 Xbyak::util::ebp (Operand::EBP)
 
static const Reg32 Xbyak::util::esi (Operand::ESI)
 
static const Reg32 Xbyak::util::edi (Operand::EDI)
 
static const Reg16 Xbyak::util::cx (Operand::CX)
 
static const Reg16 Xbyak::util::dx (Operand::DX)
 
static const Reg16 Xbyak::util::bx (Operand::BX)
 
static const Reg16 Xbyak::util::sp (Operand::SP)
 
static const Reg16 Xbyak::util::bp (Operand::BP)
 
static const Reg16 Xbyak::util::si (Operand::SI)
 
static const Reg16 Xbyak::util::di (Operand::DI)
 
static const Reg8 Xbyak::util::cl (Operand::CL)
 
static const Reg8 Xbyak::util::dl (Operand::DL)
 
static const Reg8 Xbyak::util::bl (Operand::BL)
 
static const Reg8 Xbyak::util::ah (Operand::AH)
 
static const Reg8 Xbyak::util::ch (Operand::CH)
 
static const Reg8 Xbyak::util::dh (Operand::DH)
 
static const Reg8 Xbyak::util::bh (Operand::BH)
 
static const AddressFrame Xbyak::util::byte (8)
 
static const AddressFrame Xbyak::util::word (16)
 
static const AddressFrame Xbyak::util::dword (32)
 
static const AddressFrame Xbyak::util::qword (64)
 
static const AddressFrame Xbyak::util::xword (128)
 
static const AddressFrame Xbyak::util::yword (256)
 
static const AddressFrame Xbyak::util::zword (512)
 
static const AddressFrame Xbyak::util::xword_b (128, true)
 
static const AddressFrame Xbyak::util::yword_b (256, true)
 
static const AddressFrame Xbyak::util::zword_b (512, true)
 
static const Fpu Xbyak::util::st1 (1)
 
static const Fpu Xbyak::util::st2 (2)
 
static const Fpu Xbyak::util::st3 (3)
 
static const Fpu Xbyak::util::st4 (4)
 
static const Fpu Xbyak::util::st5 (5)
 
static const Fpu Xbyak::util::st6 (6)
 
static const Fpu Xbyak::util::st7 (7)
 
static const Opmask Xbyak::util::k1 (1)
 
static const Opmask Xbyak::util::k2 (2)
 
static const Opmask Xbyak::util::k3 (3)
 
static const Opmask Xbyak::util::k4 (4)
 
static const Opmask Xbyak::util::k5 (5)
 
static const Opmask Xbyak::util::k6 (6)
 
static const Opmask Xbyak::util::k7 (7)
 
static const BoundsReg Xbyak::util::bnd1 (1)
 
static const BoundsReg Xbyak::util::bnd2 (2)
 
static const BoundsReg Xbyak::util::bnd3 (3)
 
static const EvexModifierRounding Xbyak::util::T_rn_sae (EvexModifierRounding::T_RN_SAE)
 
static const EvexModifierRounding Xbyak::util::T_rd_sae (EvexModifierRounding::T_RD_SAE)
 
static const EvexModifierRounding Xbyak::util::T_ru_sae (EvexModifierRounding::T_RU_SAE)
 
static const EvexModifierRounding Xbyak::util::T_rz_sae (EvexModifierRounding::T_RZ_SAE)
 
static const Segment Xbyak::util::cs (Segment::cs)
 
static const Segment Xbyak::util::ss (Segment::ss)
 
static const Segment Xbyak::util::ds (Segment::ds)
 
static const Segment Xbyak::util::fs (Segment::fs)
 
static const Segment Xbyak::util::gs (Segment::gs)
 

Variables

void *const Xbyak::AutoGrow = (void*)1
 

Detailed Description

Author
herumi @url https://github.com/herumi/xbyak
Note
modified new BSD license http://opensource.org/licenses/BSD-3-Clause

Definition in file xbyak.h.

Macro Definition Documentation

◆ MIE_ALIGN

#define MIE_ALIGN ( x)
Value:
__attribute__((aligned(x)))

Definition at line 129 of file xbyak.h.

◆ MIE_INTEGER_TYPE_DEFINED

#define MIE_INTEGER_TYPE_DEFINED

Definition at line 112 of file xbyak.h.

◆ MIE_PACK

#define MIE_PACK ( x,
y,
z,
w )
Value:
((x) * 64 + (y) * 16 + (z) * 4 + (w))

Definition at line 133 of file xbyak.h.

◆ XBYAK32

#define XBYAK32

Definition at line 88 of file xbyak.h.

◆ XBYAK_GNUC_PREREQ

#define XBYAK_GNUC_PREREQ ( major,
minor )
Value:
0

Definition at line 37 of file xbyak.h.

◆ XBYAK_STD_UNORDERED_MAP

#define XBYAK_STD_UNORDERED_MAP   std::map

Definition at line 63 of file xbyak.h.

◆ XBYAK_STD_UNORDERED_MULTIMAP

#define XBYAK_STD_UNORDERED_MULTIMAP   std::multimap

Definition at line 64 of file xbyak.h.

◆ XBYAK_XBYAK_H_

#define XBYAK_XBYAK_H_

Definition at line 3 of file xbyak.h.