QtBase  v6.3.1
Macros | Functions
sljitNativeX86_common.c File Reference
#include "sljitNativeX86_64.c"
Include dependency graph for sljitNativeX86_common.c:

Go to the source code of this file.

Macros

#define TMP_FREG   (0)
 
#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define REX_W   0x48
 
#define REX_R   0x44
 
#define REX_X   0x42
 
#define REX_B   0x41
 
#define REX   0x40
 
#define HALFWORD_MAX   0x7fffffffl
 
#define HALFWORD_MIN   -0x80000000l
 
#define IS_HALFWORD(x)   ((x) <= HALFWORD_MAX && (x) >= HALFWORD_MIN)
 
#define NOT_HALFWORD(x)   ((x) > HALFWORD_MAX || (x) < HALFWORD_MIN)
 
#define CHECK_EXTRA_REGS(p, w, do)
 
#define U8(v)   ((sljit_u8)(v))
 
#define EX86_BIN_INS   0x0010
 
#define EX86_SHIFT_INS   0x0020
 
#define EX86_REX   0x0040
 
#define EX86_NO_REXW   0x0080
 
#define EX86_BYTE_ARG   0x0100
 
#define EX86_HALF_ARG   0x0200
 
#define EX86_PREF_66   0x0400
 
#define EX86_PREF_F2   0x0800
 
#define EX86_PREF_F3   0x1000
 
#define EX86_SSE2_OP1   0x2000
 
#define EX86_SSE2_OP2   0x4000
 
#define EX86_SSE2   (EX86_SSE2_OP1 | EX86_SSE2_OP2)
 
#define ADD   (/* BINARY */ 0 << 3)
 
#define ADD_EAX_i32   0x05
 
#define ADD_r_rm   0x03
 
#define ADD_rm_r   0x01
 
#define ADDSD_x_xm   0x58
 
#define ADC   (/* BINARY */ 2 << 3)
 
#define ADC_EAX_i32   0x15
 
#define ADC_r_rm   0x13
 
#define ADC_rm_r   0x11
 
#define AND   (/* BINARY */ 4 << 3)
 
#define AND_EAX_i32   0x25
 
#define AND_r_rm   0x23
 
#define AND_rm_r   0x21
 
#define ANDPD_x_xm   0x54
 
#define BSR_r_rm   (/* GROUP_0F */ 0xbd)
 
#define CALL_i32   0xe8
 
#define CALL_rm   (/* GROUP_FF */ 2 << 3)
 
#define CDQ   0x99
 
#define CMOVE_r_rm   (/* GROUP_0F */ 0x44)
 
#define CMP   (/* BINARY */ 7 << 3)
 
#define CMP_EAX_i32   0x3d
 
#define CMP_r_rm   0x3b
 
#define CMP_rm_r   0x39
 
#define CVTPD2PS_x_xm   0x5a
 
#define CVTSI2SD_x_rm   0x2a
 
#define CVTTSD2SI_r_xm   0x2c
 
#define DIV   (/* GROUP_F7 */ 6 << 3)
 
#define DIVSD_x_xm   0x5e
 
#define FSTPS   0xd9
 
#define FSTPD   0xdd
 
#define INT3   0xcc
 
#define IDIV   (/* GROUP_F7 */ 7 << 3)
 
#define IMUL   (/* GROUP_F7 */ 5 << 3)
 
#define IMUL_r_rm   (/* GROUP_0F */ 0xaf)
 
#define IMUL_r_rm_i8   0x6b
 
#define IMUL_r_rm_i32   0x69
 
#define JE_i8   0x74
 
#define JNE_i8   0x75
 
#define JMP_i8   0xeb
 
#define JMP_i32   0xe9
 
#define JMP_rm   (/* GROUP_FF */ 4 << 3)
 
#define LEA_r_m   0x8d
 
#define LOOP_i8   0xe2
 
#define MOV_r_rm   0x8b
 
#define MOV_r_i32   0xb8
 
#define MOV_rm_r   0x89
 
#define MOV_rm_i32   0xc7
 
#define MOV_rm8_i8   0xc6
 
#define MOV_rm8_r8   0x88
 
#define MOVAPS_x_xm   0x28
 
#define MOVAPS_xm_x   0x29
 
#define MOVSD_x_xm   0x10
 
#define MOVSD_xm_x   0x11
 
#define MOVSXD_r_rm   0x63
 
#define MOVSX_r_rm8   (/* GROUP_0F */ 0xbe)
 
#define MOVSX_r_rm16   (/* GROUP_0F */ 0xbf)
 
#define MOVZX_r_rm8   (/* GROUP_0F */ 0xb6)
 
#define MOVZX_r_rm16   (/* GROUP_0F */ 0xb7)
 
#define MUL   (/* GROUP_F7 */ 4 << 3)
 
#define MULSD_x_xm   0x59
 
#define NEG_rm   (/* GROUP_F7 */ 3 << 3)
 
#define NOP   0x90
 
#define NOT_rm   (/* GROUP_F7 */ 2 << 3)
 
#define OR   (/* BINARY */ 1 << 3)
 
#define OR_r_rm   0x0b
 
#define OR_EAX_i32   0x0d
 
#define OR_rm_r   0x09
 
#define OR_rm8_r8   0x08
 
#define POP_r   0x58
 
#define POP_rm   0x8f
 
#define POPF   0x9d
 
#define PREFETCH   0x18
 
#define PUSH_i32   0x68
 
#define PUSH_r   0x50
 
#define PUSH_rm   (/* GROUP_FF */ 6 << 3)
 
#define PUSHF   0x9c
 
#define RET_near   0xc3
 
#define RET_i16   0xc2
 
#define SBB   (/* BINARY */ 3 << 3)
 
#define SBB_EAX_i32   0x1d
 
#define SBB_r_rm   0x1b
 
#define SBB_rm_r   0x19
 
#define SAR   (/* SHIFT */ 7 << 3)
 
#define SHL   (/* SHIFT */ 4 << 3)
 
#define SHR   (/* SHIFT */ 5 << 3)
 
#define SUB   (/* BINARY */ 5 << 3)
 
#define SUB_EAX_i32   0x2d
 
#define SUB_r_rm   0x2b
 
#define SUB_rm_r   0x29
 
#define SUBSD_x_xm   0x5c
 
#define TEST_EAX_i32   0xa9
 
#define TEST_rm_r   0x85
 
#define UCOMISD_x_xm   0x2e
 
#define UNPCKLPD_x_xm   0x14
 
#define XCHG_EAX_r   0x90
 
#define XCHG_r_rm   0x87
 
#define XOR   (/* BINARY */ 6 << 3)
 
#define XOR_EAX_i32   0x35
 
#define XOR_r_rm   0x33
 
#define XOR_rm_r   0x31
 
#define XORPD_x_xm   0x57
 
#define GROUP_0F   0x0f
 
#define GROUP_F7   0xf7
 
#define GROUP_FF   0xff
 
#define GROUP_BINARY_81   0x81
 
#define GROUP_BINARY_83   0x83
 
#define GROUP_SHIFT_1   0xd1
 
#define GROUP_SHIFT_N   0xc1
 
#define GROUP_SHIFT_CL   0xd3
 
#define MOD_REG   0xc0
 
#define MOD_DISP8   0x40
 
#define INC_SIZE(s)   (*inst++ = U8(s), compiler->size += (s))
 
#define PUSH_REG(r)   (*inst++ = U8(PUSH_r + (r)))
 
#define POP_REG(r)   (*inst++ = U8(POP_r + (r)))
 
#define RET()   (*inst++ = RET_near)
 
#define RET_I16(n)   (*inst++ = RET_i16, *inst++ = U8(n), *inst++ = 0)
 
#define BINARY_OPCODE(opcode)   (((opcode ## _EAX_i32) << 24) | ((opcode ## _r_rm) << 16) | ((opcode ## _rm_r) << 8) | (opcode))
 
#define BINARY_IMM32(op_imm, immw, arg, argw)
 
#define BINARY_IMM(op_imm, op_mr, immw, arg, argw)    BINARY_IMM32(op_imm, immw, arg, argw)
 
#define BINARY_EAX_IMM(op_eax_imm, immw)    FAIL_IF(emit_do_imm(compiler, (op_eax_imm), immw))
 
#define EMIT_MOV(compiler, dst, dstw, src, srcw)    FAIL_IF(emit_mov(compiler, dst, dstw, src, srcw));
 
#define ENCODE_PREFIX(prefix)
 

Functions

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name (void)
 
SLJIT_API_FUNC_ATTRIBUTE voidsljit_generate_code (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature (sljit_s32 feature_type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 (struct sljit_compiler *compiler, sljit_s32 op)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index (sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index (sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom (struct sljit_compiler *compiler, void *instruction, sljit_u32 size)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_labelsljit_emit_label (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_jump (struct sljit_compiler *compiler, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_reg, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_constsljit_emit_const (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_put_labelsljit_emit_put_label (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr (sljit_uw addr, sljit_uw new_target, sljit_sw executable_offset)
 
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const (sljit_uw addr, sljit_sw new_constant, sljit_sw executable_offset)
 

Macro Definition Documentation

◆ ADC

#define ADC   (/* BINARY */ 2 << 3)

Definition at line 174 of file sljitNativeX86_common.c.

◆ ADC_EAX_i32

#define ADC_EAX_i32   0x15

Definition at line 175 of file sljitNativeX86_common.c.

◆ ADC_r_rm

#define ADC_r_rm   0x13

Definition at line 176 of file sljitNativeX86_common.c.

◆ ADC_rm_r

#define ADC_rm_r   0x11

Definition at line 177 of file sljitNativeX86_common.c.

◆ ADD

#define ADD   (/* BINARY */ 0 << 3)

Definition at line 169 of file sljitNativeX86_common.c.

◆ ADD_EAX_i32

#define ADD_EAX_i32   0x05

Definition at line 170 of file sljitNativeX86_common.c.

◆ ADD_r_rm

#define ADD_r_rm   0x03

Definition at line 171 of file sljitNativeX86_common.c.

◆ ADD_rm_r

#define ADD_rm_r   0x01

Definition at line 172 of file sljitNativeX86_common.c.

◆ ADDSD_x_xm

#define ADDSD_x_xm   0x58

Definition at line 173 of file sljitNativeX86_common.c.

◆ AND

#define AND   (/* BINARY */ 4 << 3)

Definition at line 178 of file sljitNativeX86_common.c.

◆ AND_EAX_i32

#define AND_EAX_i32   0x25

Definition at line 179 of file sljitNativeX86_common.c.

◆ AND_r_rm

#define AND_r_rm   0x23

Definition at line 180 of file sljitNativeX86_common.c.

◆ AND_rm_r

#define AND_rm_r   0x21

Definition at line 181 of file sljitNativeX86_common.c.

◆ ANDPD_x_xm

#define ANDPD_x_xm   0x54

Definition at line 182 of file sljitNativeX86_common.c.

◆ BINARY_EAX_IMM

#define BINARY_EAX_IMM (   op_eax_imm,
  immw 
)     FAIL_IF(emit_do_imm(compiler, (op_eax_imm), immw))

Definition at line 721 of file sljitNativeX86_common.c.

◆ BINARY_IMM

#define BINARY_IMM (   op_imm,
  op_mr,
  immw,
  arg,
  argw 
)     BINARY_IMM32(op_imm, immw, arg, argw)

Definition at line 718 of file sljitNativeX86_common.c.

◆ BINARY_IMM32

#define BINARY_IMM32 (   op_imm,
  immw,
  arg,
  argw 
)
Value:
do { \
inst = emit_x86_instruction(compiler, 1 | EX86_BIN_INS, SLJIT_IMM, immw, arg, argw); \
FAIL_IF(!inst); \
*(inst + 1) |= (op_imm); \
} while (0)
SSL_CTX int(*) void arg)
#define SLJIT_IMM
Definition: sljitLir.h:807
#define EX86_BIN_INS

Definition at line 691 of file sljitNativeX86_common.c.

◆ BINARY_OPCODE

#define BINARY_OPCODE (   opcode)    (((opcode ## _EAX_i32) << 24) | ((opcode ## _r_rm) << 16) | ((opcode ## _rm_r) << 8) | (opcode))

Definition at line 689 of file sljitNativeX86_common.c.

◆ BSR_r_rm

#define BSR_r_rm   (/* GROUP_0F */ 0xbd)

Definition at line 183 of file sljitNativeX86_common.c.

◆ CALL_i32

#define CALL_i32   0xe8

Definition at line 184 of file sljitNativeX86_common.c.

◆ CALL_rm

#define CALL_rm   (/* GROUP_FF */ 2 << 3)

Definition at line 185 of file sljitNativeX86_common.c.

◆ CDQ

#define CDQ   0x99

Definition at line 186 of file sljitNativeX86_common.c.

◆ CHECK_EXTRA_REGS

#define CHECK_EXTRA_REGS (   p,
  w,
  do 
)

Definition at line 144 of file sljitNativeX86_common.c.

◆ CMOVE_r_rm

#define CMOVE_r_rm   (/* GROUP_0F */ 0x44)

Definition at line 187 of file sljitNativeX86_common.c.

◆ CMP

#define CMP   (/* BINARY */ 7 << 3)

Definition at line 188 of file sljitNativeX86_common.c.

◆ CMP_EAX_i32

#define CMP_EAX_i32   0x3d

Definition at line 189 of file sljitNativeX86_common.c.

◆ CMP_r_rm

#define CMP_r_rm   0x3b

Definition at line 190 of file sljitNativeX86_common.c.

◆ CMP_rm_r

#define CMP_rm_r   0x39

Definition at line 191 of file sljitNativeX86_common.c.

◆ CVTPD2PS_x_xm

#define CVTPD2PS_x_xm   0x5a

Definition at line 192 of file sljitNativeX86_common.c.

◆ CVTSI2SD_x_rm

#define CVTSI2SD_x_rm   0x2a

Definition at line 193 of file sljitNativeX86_common.c.

◆ CVTTSD2SI_r_xm

#define CVTTSD2SI_r_xm   0x2c

Definition at line 194 of file sljitNativeX86_common.c.

◆ DIV

#define DIV   (/* GROUP_F7 */ 6 << 3)

Definition at line 195 of file sljitNativeX86_common.c.

◆ DIVSD_x_xm

#define DIVSD_x_xm   0x5e

Definition at line 196 of file sljitNativeX86_common.c.

◆ EMIT_MOV

#define EMIT_MOV (   compiler,
  dst,
  dstw,
  src,
  srcw 
)     FAIL_IF(emit_mov(compiler, dst, dstw, src, srcw));

Definition at line 730 of file sljitNativeX86_common.c.

◆ ENCODE_PREFIX

#define ENCODE_PREFIX (   prefix)
Value:
do { \
inst = (sljit_u8*)ensure_buf(compiler, 1 + 1); \
FAIL_IF(!inst); \
INC_SIZE(1); \
*inst = U8(prefix); \
} while (0)
unsigned char sljit_u8
#define U8(v)

Definition at line 1101 of file sljitNativeX86_common.c.

◆ EX86_BIN_INS

#define EX86_BIN_INS   0x0010

Definition at line 152 of file sljitNativeX86_common.c.

◆ EX86_BYTE_ARG

#define EX86_BYTE_ARG   0x0100

Definition at line 156 of file sljitNativeX86_common.c.

◆ EX86_HALF_ARG

#define EX86_HALF_ARG   0x0200

Definition at line 157 of file sljitNativeX86_common.c.

◆ EX86_NO_REXW

#define EX86_NO_REXW   0x0080

Definition at line 155 of file sljitNativeX86_common.c.

◆ EX86_PREF_66

#define EX86_PREF_66   0x0400

Definition at line 158 of file sljitNativeX86_common.c.

◆ EX86_PREF_F2

#define EX86_PREF_F2   0x0800

Definition at line 159 of file sljitNativeX86_common.c.

◆ EX86_PREF_F3

#define EX86_PREF_F3   0x1000

Definition at line 160 of file sljitNativeX86_common.c.

◆ EX86_REX

#define EX86_REX   0x0040

Definition at line 154 of file sljitNativeX86_common.c.

◆ EX86_SHIFT_INS

#define EX86_SHIFT_INS   0x0020

Definition at line 153 of file sljitNativeX86_common.c.

◆ EX86_SSE2

#define EX86_SSE2   (EX86_SSE2_OP1 | EX86_SSE2_OP2)

Definition at line 163 of file sljitNativeX86_common.c.

◆ EX86_SSE2_OP1

#define EX86_SSE2_OP1   0x2000

Definition at line 161 of file sljitNativeX86_common.c.

◆ EX86_SSE2_OP2

#define EX86_SSE2_OP2   0x4000

Definition at line 162 of file sljitNativeX86_common.c.

◆ FSTPD

#define FSTPD   0xdd

Definition at line 198 of file sljitNativeX86_common.c.

◆ FSTPS

#define FSTPS   0xd9

Definition at line 197 of file sljitNativeX86_common.c.

◆ GROUP_0F

#define GROUP_0F   0x0f

Definition at line 271 of file sljitNativeX86_common.c.

◆ GROUP_BINARY_81

#define GROUP_BINARY_81   0x81

Definition at line 274 of file sljitNativeX86_common.c.

◆ GROUP_BINARY_83

#define GROUP_BINARY_83   0x83

Definition at line 275 of file sljitNativeX86_common.c.

◆ GROUP_F7

#define GROUP_F7   0xf7

Definition at line 272 of file sljitNativeX86_common.c.

◆ GROUP_FF

#define GROUP_FF   0xff

Definition at line 273 of file sljitNativeX86_common.c.

◆ GROUP_SHIFT_1

#define GROUP_SHIFT_1   0xd1

Definition at line 276 of file sljitNativeX86_common.c.

◆ GROUP_SHIFT_CL

#define GROUP_SHIFT_CL   0xd3

Definition at line 278 of file sljitNativeX86_common.c.

◆ GROUP_SHIFT_N

#define GROUP_SHIFT_N   0xc1

Definition at line 277 of file sljitNativeX86_common.c.

◆ HALFWORD_MAX

#define HALFWORD_MAX   0x7fffffffl

Definition at line 134 of file sljitNativeX86_common.c.

◆ HALFWORD_MIN

#define HALFWORD_MIN   -0x80000000l

Definition at line 135 of file sljitNativeX86_common.c.

◆ IDIV

#define IDIV   (/* GROUP_F7 */ 7 << 3)

Definition at line 200 of file sljitNativeX86_common.c.

◆ IMUL

#define IMUL   (/* GROUP_F7 */ 5 << 3)

Definition at line 201 of file sljitNativeX86_common.c.

◆ IMUL_r_rm

#define IMUL_r_rm   (/* GROUP_0F */ 0xaf)

Definition at line 202 of file sljitNativeX86_common.c.

◆ IMUL_r_rm_i32

#define IMUL_r_rm_i32   0x69

Definition at line 204 of file sljitNativeX86_common.c.

◆ IMUL_r_rm_i8

#define IMUL_r_rm_i8   0x6b

Definition at line 203 of file sljitNativeX86_common.c.

◆ INC_SIZE

#define INC_SIZE (   s)    (*inst++ = U8(s), compiler->size += (s))

Definition at line 283 of file sljitNativeX86_common.c.

◆ INT3

#define INT3   0xcc

Definition at line 199 of file sljitNativeX86_common.c.

◆ IS_HALFWORD

#define IS_HALFWORD (   x)    ((x) <= HALFWORD_MAX && (x) >= HALFWORD_MIN)

Definition at line 141 of file sljitNativeX86_common.c.

◆ JE_i8

#define JE_i8   0x74

Definition at line 205 of file sljitNativeX86_common.c.

◆ JMP_i32

#define JMP_i32   0xe9

Definition at line 208 of file sljitNativeX86_common.c.

◆ JMP_i8

#define JMP_i8   0xeb

Definition at line 207 of file sljitNativeX86_common.c.

◆ JMP_rm

#define JMP_rm   (/* GROUP_FF */ 4 << 3)

Definition at line 209 of file sljitNativeX86_common.c.

◆ JNE_i8

#define JNE_i8   0x75

Definition at line 206 of file sljitNativeX86_common.c.

◆ LEA_r_m

#define LEA_r_m   0x8d

Definition at line 210 of file sljitNativeX86_common.c.

◆ LOOP_i8

#define LOOP_i8   0xe2

Definition at line 211 of file sljitNativeX86_common.c.

◆ MOD_DISP8

#define MOD_DISP8   0x40

Definition at line 281 of file sljitNativeX86_common.c.

◆ MOD_REG

#define MOD_REG   0xc0

Definition at line 280 of file sljitNativeX86_common.c.

◆ MOV_r_i32

#define MOV_r_i32   0xb8

Definition at line 213 of file sljitNativeX86_common.c.

◆ MOV_r_rm

#define MOV_r_rm   0x8b

Definition at line 212 of file sljitNativeX86_common.c.

◆ MOV_rm8_i8

#define MOV_rm8_i8   0xc6

Definition at line 216 of file sljitNativeX86_common.c.

◆ MOV_rm8_r8

#define MOV_rm8_r8   0x88

Definition at line 217 of file sljitNativeX86_common.c.

◆ MOV_rm_i32

#define MOV_rm_i32   0xc7

Definition at line 215 of file sljitNativeX86_common.c.

◆ MOV_rm_r

#define MOV_rm_r   0x89

Definition at line 214 of file sljitNativeX86_common.c.

◆ MOVAPS_x_xm

#define MOVAPS_x_xm   0x28

Definition at line 218 of file sljitNativeX86_common.c.

◆ MOVAPS_xm_x

#define MOVAPS_xm_x   0x29

Definition at line 219 of file sljitNativeX86_common.c.

◆ MOVSD_x_xm

#define MOVSD_x_xm   0x10

Definition at line 220 of file sljitNativeX86_common.c.

◆ MOVSD_xm_x

#define MOVSD_xm_x   0x11

Definition at line 221 of file sljitNativeX86_common.c.

◆ MOVSX_r_rm16

#define MOVSX_r_rm16   (/* GROUP_0F */ 0xbf)

Definition at line 224 of file sljitNativeX86_common.c.

◆ MOVSX_r_rm8

#define MOVSX_r_rm8   (/* GROUP_0F */ 0xbe)

Definition at line 223 of file sljitNativeX86_common.c.

◆ MOVSXD_r_rm

#define MOVSXD_r_rm   0x63

Definition at line 222 of file sljitNativeX86_common.c.

◆ MOVZX_r_rm16

#define MOVZX_r_rm16   (/* GROUP_0F */ 0xb7)

Definition at line 226 of file sljitNativeX86_common.c.

◆ MOVZX_r_rm8

#define MOVZX_r_rm8   (/* GROUP_0F */ 0xb6)

Definition at line 225 of file sljitNativeX86_common.c.

◆ MUL

#define MUL   (/* GROUP_F7 */ 4 << 3)

Definition at line 227 of file sljitNativeX86_common.c.

◆ MULSD_x_xm

#define MULSD_x_xm   0x59

Definition at line 228 of file sljitNativeX86_common.c.

◆ NEG_rm

#define NEG_rm   (/* GROUP_F7 */ 3 << 3)

Definition at line 229 of file sljitNativeX86_common.c.

◆ NOP

#define NOP   0x90

Definition at line 230 of file sljitNativeX86_common.c.

◆ NOT_HALFWORD

#define NOT_HALFWORD (   x)    ((x) > HALFWORD_MAX || (x) < HALFWORD_MIN)

Definition at line 142 of file sljitNativeX86_common.c.

◆ NOT_rm

#define NOT_rm   (/* GROUP_F7 */ 2 << 3)

Definition at line 231 of file sljitNativeX86_common.c.

◆ OR

#define OR   (/* BINARY */ 1 << 3)

Definition at line 232 of file sljitNativeX86_common.c.

◆ OR_EAX_i32

#define OR_EAX_i32   0x0d

Definition at line 234 of file sljitNativeX86_common.c.

◆ OR_r_rm

#define OR_r_rm   0x0b

Definition at line 233 of file sljitNativeX86_common.c.

◆ OR_rm8_r8

#define OR_rm8_r8   0x08

Definition at line 236 of file sljitNativeX86_common.c.

◆ OR_rm_r

#define OR_rm_r   0x09

Definition at line 235 of file sljitNativeX86_common.c.

◆ POP_r

#define POP_r   0x58

Definition at line 237 of file sljitNativeX86_common.c.

◆ POP_REG

#define POP_REG (   r)    (*inst++ = U8(POP_r + (r)))

Definition at line 286 of file sljitNativeX86_common.c.

◆ POP_rm

#define POP_rm   0x8f

Definition at line 238 of file sljitNativeX86_common.c.

◆ POPF

#define POPF   0x9d

Definition at line 239 of file sljitNativeX86_common.c.

◆ PREFETCH

#define PREFETCH   0x18

Definition at line 240 of file sljitNativeX86_common.c.

◆ PUSH_i32

#define PUSH_i32   0x68

Definition at line 241 of file sljitNativeX86_common.c.

◆ PUSH_r

#define PUSH_r   0x50

Definition at line 242 of file sljitNativeX86_common.c.

◆ PUSH_REG

#define PUSH_REG (   r)    (*inst++ = U8(PUSH_r + (r)))

Definition at line 285 of file sljitNativeX86_common.c.

◆ PUSH_rm

#define PUSH_rm   (/* GROUP_FF */ 6 << 3)

Definition at line 243 of file sljitNativeX86_common.c.

◆ PUSHF

#define PUSHF   0x9c

Definition at line 244 of file sljitNativeX86_common.c.

◆ RET

#define RET ( )    (*inst++ = RET_near)

Definition at line 287 of file sljitNativeX86_common.c.

◆ RET_i16

#define RET_i16   0xc2

Definition at line 246 of file sljitNativeX86_common.c.

◆ RET_I16

#define RET_I16 (   n)    (*inst++ = RET_i16, *inst++ = U8(n), *inst++ = 0)

Definition at line 288 of file sljitNativeX86_common.c.

◆ RET_near

#define RET_near   0xc3

Definition at line 245 of file sljitNativeX86_common.c.

◆ REX

#define REX   0x40

Definition at line 131 of file sljitNativeX86_common.c.

◆ REX_B

#define REX_B   0x41

Definition at line 130 of file sljitNativeX86_common.c.

◆ REX_R

#define REX_R   0x44

Definition at line 128 of file sljitNativeX86_common.c.

◆ REX_W

#define REX_W   0x48

Definition at line 127 of file sljitNativeX86_common.c.

◆ REX_X

#define REX_X   0x42

Definition at line 129 of file sljitNativeX86_common.c.

◆ SAR

#define SAR   (/* SHIFT */ 7 << 3)

Definition at line 251 of file sljitNativeX86_common.c.

◆ SBB

#define SBB   (/* BINARY */ 3 << 3)

Definition at line 247 of file sljitNativeX86_common.c.

◆ SBB_EAX_i32

#define SBB_EAX_i32   0x1d

Definition at line 248 of file sljitNativeX86_common.c.

◆ SBB_r_rm

#define SBB_r_rm   0x1b

Definition at line 249 of file sljitNativeX86_common.c.

◆ SBB_rm_r

#define SBB_rm_r   0x19

Definition at line 250 of file sljitNativeX86_common.c.

◆ SHL

#define SHL   (/* SHIFT */ 4 << 3)

Definition at line 252 of file sljitNativeX86_common.c.

◆ SHR

#define SHR   (/* SHIFT */ 5 << 3)

Definition at line 253 of file sljitNativeX86_common.c.

◆ SUB

#define SUB   (/* BINARY */ 5 << 3)

Definition at line 254 of file sljitNativeX86_common.c.

◆ SUB_EAX_i32

#define SUB_EAX_i32   0x2d

Definition at line 255 of file sljitNativeX86_common.c.

◆ SUB_r_rm

#define SUB_r_rm   0x2b

Definition at line 256 of file sljitNativeX86_common.c.

◆ SUB_rm_r

#define SUB_rm_r   0x29

Definition at line 257 of file sljitNativeX86_common.c.

◆ SUBSD_x_xm

#define SUBSD_x_xm   0x5c

Definition at line 258 of file sljitNativeX86_common.c.

◆ TEST_EAX_i32

#define TEST_EAX_i32   0xa9

Definition at line 259 of file sljitNativeX86_common.c.

◆ TEST_rm_r

#define TEST_rm_r   0x85

Definition at line 260 of file sljitNativeX86_common.c.

◆ TMP_FREG

#define TMP_FREG   (0)

Definition at line 68 of file sljitNativeX86_common.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 92 of file sljitNativeX86_common.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 93 of file sljitNativeX86_common.c.

◆ U8

#define U8 (   v)    ((sljit_u8)(v))

Definition at line 148 of file sljitNativeX86_common.c.

◆ UCOMISD_x_xm

#define UCOMISD_x_xm   0x2e

Definition at line 261 of file sljitNativeX86_common.c.

◆ UNPCKLPD_x_xm

#define UNPCKLPD_x_xm   0x14

Definition at line 262 of file sljitNativeX86_common.c.

◆ XCHG_EAX_r

#define XCHG_EAX_r   0x90

Definition at line 263 of file sljitNativeX86_common.c.

◆ XCHG_r_rm

#define XCHG_r_rm   0x87

Definition at line 264 of file sljitNativeX86_common.c.

◆ XOR

#define XOR   (/* BINARY */ 6 << 3)

Definition at line 265 of file sljitNativeX86_common.c.

◆ XOR_EAX_i32

#define XOR_EAX_i32   0x35

Definition at line 266 of file sljitNativeX86_common.c.

◆ XOR_r_rm

#define XOR_r_rm   0x33

Definition at line 267 of file sljitNativeX86_common.c.

◆ XOR_rm_r

#define XOR_rm_r   0x31

Definition at line 268 of file sljitNativeX86_common.c.

◆ XORPD_x_xm

#define XORPD_x_xm   0x57

Definition at line 269 of file sljitNativeX86_common.c.

Function Documentation

◆ sljit_emit_cmov()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  dst_reg,
sljit_s32  src,
sljit_sw  srcw 
)

Definition at line 2938 of file sljitNativeX86_common.c.

Here is the call graph for this function:

◆ sljit_emit_const()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw,
sljit_sw  init_value 
)

Definition at line 3009 of file sljitNativeX86_common.c.

Here is the call graph for this function:

◆ sljit_emit_fop1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)

Definition at line 2527 of file sljitNativeX86_common.c.

◆ sljit_emit_fop2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

Definition at line 2593 of file sljitNativeX86_common.c.

◆ sljit_emit_ijump()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump ( struct sljit_compiler compiler,
sljit_s32  type,
sljit_s32  src,
sljit_sw  srcw 
)

Definition at line 2710 of file sljitNativeX86_common.c.

◆ sljit_emit_jump()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump ( struct sljit_compiler compiler,
sljit_s32  type 
)

Definition at line 2682 of file sljitNativeX86_common.c.

◆ sljit_emit_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label ( struct sljit_compiler compiler)

Definition at line 2658 of file sljitNativeX86_common.c.

◆ sljit_emit_op0()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 ( struct sljit_compiler compiler,
sljit_s32  op 
)

Definition at line 956 of file sljitNativeX86_common.c.

◆ sljit_emit_op1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src,
sljit_sw  srcw 
)

Definition at line 1449 of file sljitNativeX86_common.c.

◆ sljit_emit_op2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

Definition at line 2231 of file sljitNativeX86_common.c.

Here is the caller graph for this function:

◆ sljit_emit_op2u()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src1,
sljit_sw  src1w,
sljit_s32  src2,
sljit_sw  src2w 
)

Definition at line 2305 of file sljitNativeX86_common.c.

Here is the call graph for this function:

◆ sljit_emit_op_custom()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom ( struct sljit_compiler compiler,
void instruction,
sljit_u32  size 
)

Definition at line 2384 of file sljitNativeX86_common.c.

◆ sljit_emit_op_flags()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  dst,
sljit_sw  dstw,
sljit_s32  type 
)

Definition at line 2753 of file sljitNativeX86_common.c.

◆ sljit_emit_op_src()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src ( struct sljit_compiler compiler,
sljit_s32  op,
sljit_s32  src,
sljit_sw  srcw 
)

Definition at line 2337 of file sljitNativeX86_common.c.

◆ sljit_emit_put_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_put_label* sljit_emit_put_label ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw 
)

Definition at line 3053 of file sljitNativeX86_common.c.

◆ sljit_generate_code()

SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code ( struct sljit_compiler compiler)

Definition at line 492 of file sljitNativeX86_common.c.

◆ sljit_get_float_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_float_register_index ( sljit_s32  reg)

Definition at line 2374 of file sljitNativeX86_common.c.

◆ sljit_get_local_base()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_local_base ( struct sljit_compiler compiler,
sljit_s32  dst,
sljit_sw  dstw,
sljit_sw  offset 
)

Definition at line 2978 of file sljitNativeX86_common.c.

◆ sljit_get_platform_name()

SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name ( void  )

Definition at line 27 of file sljitNativeX86_common.c.

◆ sljit_get_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index ( sljit_s32  reg)

Definition at line 2364 of file sljitNativeX86_common.c.

◆ sljit_has_cpu_feature()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature ( sljit_s32  feature_type)

Definition at line 643 of file sljitNativeX86_common.c.

Here is the caller graph for this function:

◆ sljit_set_const()

SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const ( sljit_uw  addr,
sljit_sw  new_constant,
sljit_sw  executable_offset 
)

Definition at line 3114 of file sljitNativeX86_common.c.

◆ sljit_set_jump_addr()

SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr ( sljit_uw  addr,
sljit_uw  new_target,
sljit_sw  executable_offset 
)

Definition at line 3101 of file sljitNativeX86_common.c.