Harpy.X86CodeGen

Types

data X86_SSE_PFX

Constants

Machine characteristics

x86_dword_size

x86_qword_size

x86_max_instruction_bytes

Register numbers

x86_eax

x86_ecx

x86_edx

x86_ebx

x86_esp

x86_ebp

x86_esi

x86_edi

x86_nobasereg

Register masks and predicates

x86_eax_mask

x86_ecx_mask

x86_edx_mask

x86_ebx_mask

x86_esi_mask

x86_edi_mask

x86_ebp_mask

x86_callee_regs

x86_caller_regs

x86_byte_regs

ALU operations

x86_add

x86_or

x86_adc

x86_sbb

x86_and

x86_sub

x86_xor

x86_cmp

Shift operations

x86_rol

x86_ror

x86_rcl

x86_rcr

x86_shl

x86_shr

x86_sar

x86_shld

x86_shlr

FP operations

x86_fadd

x86_fmul

x86_fcom

x86_fcomp

x86_fsub

x86_fsubr

x86_fdiv

x86_fdivr

FP conditions and control codes

x86_fp_c0

x86_fp_c1

x86_fp_c2

x86_fp_c3

x86_fp_cc_mask

x86_fpcw_invopex_mask

x86_fpcw_denopex_mask

x86_fpcw_zerodiv_mask

x86_fpcw_ovfex_mask

x86_fpcw_undfex_mask

x86_fpcw_precex_mask

x86_fpcw_precc_mask

x86_fpcw_roundc_mask

x86_fpcw_prec_single

x86_fpcw_prec_double

x86_fpcw_prec_extended

x86_fpcw_round_nearest

x86_fpcw_round_down

x86_fpcw_round_up

x86_fpcw_round_tozero

Condition codes

x86_cc_eq

x86_cc_e

x86_cc_z

x86_cc_ne

x86_cc_nz

x86_cc_lt

x86_cc_b

x86_cc_c

x86_cc_nae

x86_cc_le

x86_cc_be

x86_cc_na

x86_cc_gt

x86_cc_a

x86_cc_nbe

x86_cc_ge

x86_cc_ae

x86_cc_nb

x86_cc_nc

x86_cc_lz

x86_cc_s

x86_cc_gez

x86_cc_ns

x86_cc_p

x86_cc_np

x86_cc_pe

x86_cc_po

x86_cc_o

x86_cc_no

Instruction prefix codes

x86_lock_prefix

x86_repnz_prefix

x86_repz_prefix

x86_rep_prefix

x86_cs_prefix

x86_ss_prefix

x86_ds_prefix

x86_es_prefix

x86_fs_prefix

x86_gs_prefix

x86_unlikely_prefix

x86_likely_prefix

x86_operand_prefix

x86_address_prefix

Functions

Utility functions

x86_is_scratch

x86_is_callee

Code emission

x86_imm_emit16

x86_imm_emit8

x86_imm_emit32

x86_membase_emit

x86_alu_reg_imm

Call instructions

x86_call_hs

x86_call_membase

x86_call_mem

x86_call_reg

x86_call_code

x86_call_imm

Function prologue and epilogue

x86_prolog

x86_epilog

x86_enter

x86_leave

x86_ret

x86_ret_imm

Jump and branch

x86_jecxz

x86_branch

x86_branch_pointer

x86_branch32

x86_branch8

x86_jump_membase

x86_jump_pointer

x86_jump_mem

x86_jump_reg

x86_jump32

x86_jump8

x86_loopne

x86_loope

x86_loop

Stack operations

x86_push_reg

x86_push_regp

x86_push_mem

x86_push_membase

x86_push_imm

x86_push_imm_template

x86_push_memindex

x86_pop_membase

x86_pop_mem

x86_pop_reg

x86_popfd

x86_pushfd

x86_popad

x86_pushad

Data movement

x86_mov_reg_reg

x86_mov_reg_imm

x86_mov_mem_imm

x86_mov_membase_imm

x86_mov_memindex_imm

x86_mov_mem_reg

x86_mov_reg_mem

x86_mov_regp_reg

x86_mov_reg_regp

x86_mov_membase_reg

x86_mov_reg_membase

x86_mov_memindex_reg

x86_mov_reg_memindex

Arithmetic

x86_xadd_reg_reg

x86_xadd_mem_reg

x86_xadd_membase_reg

x86_inc_mem

x86_inc_membase

x86_inc_reg

x86_dec_mem

x86_dec_membase

x86_dec_reg

x86_not_mem

x86_not_membase

x86_not_reg

x86_neg_mem

x86_neg_membase

x86_neg_reg

x86_alu_mem_imm

x86_alu_membase_imm

x86_alu_membase8_imm

x86_alu_mem_reg

x86_alu_membase_reg

x86_alu_reg_reg

x86_alu_reg8_reg8

x86_alu_reg_mem

x86_alu_reg_membase

x86_mul_reg

x86_mul_mem

x86_mul_membase

x86_imul_reg_reg

x86_imul_reg_membase

x86_imul_reg_reg_imm

x86_imul_reg_mem

x86_imul_reg_mem_imm

x86_imul_reg_membase_imm

x86_div_reg

x86_div_mem

x86_div_membase

x86_test_reg_imm

x86_test_mem_imm

x86_test_membase_imm

x86_test_reg_reg

x86_test_mem_reg

x86_test_membase_reg

Exchange

x86_cmpxchg_reg_reg

x86_cmpxchg_mem_reg

x86_cmpxchg_membase_reg

x86_xchg_reg_reg

x86_xchg_mem_reg

x86_xchg_membase_reg

String operations

x86_stosb

x86_stosl

x86_stosd

x86_movsb

x86_movsl

x86_movsd

Bitwise shift

x86_shift_reg_imm

x86_shift_mem_imm

x86_shift_membase_imm

x86_shift_reg

x86_shift_mem

x86_shift_membase

x86_shrd_reg

x86_shrd_reg_imm

x86_shld_reg

x86_shld_reg_imm

Conditional move

x86_cmov_membase

x86_cmov_mem

x86_cmov_reg

Conditional set

x86_set_membase

x86_set_mem

x86_set_reg

Address calculation

x86_lea_mem

x86_lea_membase

x86_lea_memindex

Conversion

x86_cdq

x86_widen_memindex

x86_widen_membase

x86_widen_mem

x86_widen_reg

Floating point

x86_fp_op_mem

x86_fp_op_membase

x86_fp_op

x86_fp_op_reg

x86_fp_int_op_membase

x86_fstp

x86_fcompp

x86_fucompp

x86_fnstsw

x86_fnstcw

x86_fnstcw_membase

x86_fldcw

x86_fldcw_membase

x86_fchs

x86_frem

x86_fxch

x86_fcomi

x86_fcomip

x86_fucomi

x86_fucomip

x86_fld

x86_fld_membase

x86_fld80_mem

x86_fld80_membase

x86_fld_reg

x86_fldz

x86_fld1

x86_fldpi

x86_fst

x86_fst_membase

x86_fst80_mem

x86_fst80_membase

data FIntSize

x86_fist_pop

x86_fist_pop_membase

x86_fstsw

x86_fist_membase

x86_fild

x86_fild_membase

x86_fsin

x86_fcos

x86_fabs

x86_ftst

x86_fxam

x86_fpatan

x86_fprem

x86_fprem1

x86_frndint

x86_fsqrt

x86_fptan

x86_fincstp

x86_fdecstp

SSE instructions

x86_sse_ps

x86_sse_pd

x86_sse_ss

x86_sse_sd

x86_add_sse_reg_reg

x86_add_sse_reg_mem

x86_add_sse_reg_membase

x86_sub_sse_reg_reg

x86_sub_sse_reg_mem

x86_sub_sse_reg_membase

x86_mul_sse_reg_reg

x86_mul_sse_reg_mem

x86_mul_sse_reg_membase

x86_div_sse_reg_reg

x86_div_sse_reg_mem

x86_div_sse_reg_membase

x86_max_sse_reg_reg

x86_max_sse_reg_mem

x86_max_sse_reg_membase

x86_min_sse_reg_reg

x86_min_sse_reg_mem

x86_min_sse_reg_membase

x86_sqrt_sse_reg_reg

x86_sqrt_sse_reg_mem

x86_sqrt_sse_reg_membase

x86_mov_sse_reg_reg

x86_mov_sse_reg_mem

x86_mov_sse_reg_membase

x86_mov_sse_mem_reg

x86_mov_sse_membase_reg

x86_ucomisd_reg_reg

x86_ucomisd_reg_mem

x86_ucomisd_reg_membase

x86_ucomiss_reg_reg

x86_ucomiss_reg_mem

x86_ucomiss_reg_membase

x86_comisd_reg_reg

x86_comisd_reg_mem

x86_comisd_reg_membase

x86_comiss_reg_reg

x86_comiss_reg_mem

x86_comiss_reg_membase

data XMMReg

data Mem

data MemBase

class XMMLocation xmm

x86_movss_to_reg

x86_movss_from_reg

x86_movsd_to_reg

x86_movsd_from_reg

x86_movlps_to_reg

x86_movlps_from_reg

x86_movlpd_to_reg

x86_movlpd_from_reg

x86_movups_to_reg

x86_movups_from_reg

x86_movupd_to_reg

x86_movupd_from_reg

x86_haddps

x86_haddpd

x86_shufps

x86_shufpd

x86_cvtdq2ps

x86_cvttps2dq

Prefetch instructions

x86_prefetch0_mem

x86_prefetch1_mem

x86_prefetch2_mem

x86_prefetchnta_mem

x86_prefetch0_membase

x86_prefetch1_membase

x86_prefetch2_membase

x86_prefetchnta_membase

x86_prefetch0_regp

x86_prefetch1_regp

x86_prefetch2_regp

x86_prefetchnta_regp

Miscellaneous

x86_sahf

x86_wait

x86_nop

x86_breakpoint

x86_rdtsc

x86_cld

x86_prefix

x86_padding

Other utilities

negateCC