x86

x86 — code generation for x86

Synopsis

void                orc_x86_emit_add_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_add_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);
void                orc_x86_emit_add_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_align                  (OrcCompiler *compiler);
void                orc_x86_emit_and_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_and_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);
void                orc_x86_emit_cmp_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_cmp_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_dec_memoffset          (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg);
void                orc_x86_emit_emms                   (OrcCompiler *compiler);
void                orc_x86_emit_epilogue               (OrcCompiler *compiler);
void                orc_x86_emit_je                     (OrcCompiler *compiler,
                                                         int label);
void                orc_x86_emit_jle                    (OrcCompiler *compiler,
                                                         int label);
void                orc_x86_emit_jmp                    (OrcCompiler *compiler,
                                                         int label);
void                orc_x86_emit_jne                    (OrcCompiler *compiler,
                                                         int label);
void                orc_x86_emit_label                  (OrcCompiler *compiler,
                                                         int label);
void                orc_x86_emit_modrm_memoffset        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int offset,
                                                         int reg2);
void                orc_x86_emit_modrm_reg              (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg1);
void                orc_x86_emit_mov_memoffset_mmx      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2,
                                                         int is_aligned);
void                orc_x86_emit_mov_memoffset_reg      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_memoffset_sse      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2,
                                                         int is_aligned);
void                orc_x86_emit_mov_mmx_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2,
                                                         int aligned,
                                                         int uncached);
void                orc_x86_emit_mov_mmx_reg            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_mmx_reg_reg        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2);
void                orc_x86_emit_mov_reg_mmx            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_reg_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_reg_sse            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_sse_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2,
                                                         int aligned,
                                                         int uncached);
void                orc_x86_emit_mov_sse_reg            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_mov_sse_reg_reg        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_pop                    (OrcCompiler *compiler,
                                                         int size,
                                                         int reg);
void                orc_x86_emit_prologue               (OrcCompiler *compiler);
void                orc_x86_emit_push                   (OrcCompiler *compiler,
                                                         int size,
                                                         int reg);
void                orc_x86_emit_ret                    (OrcCompiler *compiler);
void                orc_x86_emit_rex                    (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2,
                                                         int reg3);
void                orc_x86_emit_sar_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);
void                orc_x86_emit_sub_memoffset_reg      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg,
                                                         int destreg);
void                orc_x86_emit_sub_reg_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_test_reg_reg           (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);
const char *        orc_x86_get_regname                 (int i);
const char *        orc_x86_get_regname_16              (int i);
const char *        orc_x86_get_regname_64              (int i);
const char *        orc_x86_get_regname_mmx             (int i);
const char *        orc_x86_get_regname_ptr             (OrcCompiler *compiler,
                                                         int i);
const char *        orc_x86_get_regname_sse             (int i);
int                 orc_x86_get_regnum                  (int i);
void                orc_x86_do_fixups                   (OrcCompiler *compiler);

Description

Details

orc_x86_emit_add_imm_memoffset ()

void                orc_x86_emit_add_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);

compiler :

size :

value :

offset :

reg :


orc_x86_emit_add_imm_reg ()

void                orc_x86_emit_add_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);

compiler :

size :

value :

reg :


orc_x86_emit_add_reg_memoffset ()

void                orc_x86_emit_add_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg);

compiler :

size :

reg1 :

offset :

reg :


orc_x86_emit_align ()

void                orc_x86_emit_align                  (OrcCompiler *compiler);

compiler :


orc_x86_emit_and_imm_memoffset ()

void                orc_x86_emit_and_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);

compiler :

size :

value :

offset :

reg :


orc_x86_emit_and_imm_reg ()

void                orc_x86_emit_and_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);

compiler :

size :

value :

reg :


orc_x86_emit_cmp_imm_memoffset ()

void                orc_x86_emit_cmp_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);

compiler :

size :

value :

offset :

reg :


orc_x86_emit_cmp_reg_memoffset ()

void                orc_x86_emit_cmp_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg);

compiler :

size :

reg1 :

offset :

reg :


orc_x86_emit_dec_memoffset ()

void                orc_x86_emit_dec_memoffset          (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg);

compiler :

size :

offset :

reg :


orc_x86_emit_emms ()

void                orc_x86_emit_emms                   (OrcCompiler *compiler);

compiler :


orc_x86_emit_epilogue ()

void                orc_x86_emit_epilogue               (OrcCompiler *compiler);

compiler :


orc_x86_emit_je ()

void                orc_x86_emit_je                     (OrcCompiler *compiler,
                                                         int label);

compiler :

label :


orc_x86_emit_jle ()

void                orc_x86_emit_jle                    (OrcCompiler *compiler,
                                                         int label);

compiler :

label :


orc_x86_emit_jmp ()

void                orc_x86_emit_jmp                    (OrcCompiler *compiler,
                                                         int label);

compiler :

label :


orc_x86_emit_jne ()

void                orc_x86_emit_jne                    (OrcCompiler *compiler,
                                                         int label);

compiler :

label :


orc_x86_emit_label ()

void                orc_x86_emit_label                  (OrcCompiler *compiler,
                                                         int label);

compiler :

label :


orc_x86_emit_modrm_memoffset ()

void                orc_x86_emit_modrm_memoffset        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int offset,
                                                         int reg2);

compiler :

reg1 :

offset :

reg2 :


orc_x86_emit_modrm_reg ()

void                orc_x86_emit_modrm_reg              (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_imm_reg ()

void                orc_x86_emit_mov_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg1);

compiler :

size :

value :

reg1 :


orc_x86_emit_mov_memoffset_mmx ()

void                orc_x86_emit_mov_memoffset_mmx      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2,
                                                         int is_aligned);

compiler :

size :

offset :

reg1 :

reg2 :

is_aligned :


orc_x86_emit_mov_memoffset_reg ()

void                orc_x86_emit_mov_memoffset_reg      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2);

compiler :

size :

offset :

reg1 :

reg2 :


orc_x86_emit_mov_memoffset_sse ()

void                orc_x86_emit_mov_memoffset_sse      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg1,
                                                         int reg2,
                                                         int is_aligned);

compiler :

size :

offset :

reg1 :

reg2 :

is_aligned :


orc_x86_emit_mov_mmx_memoffset ()

void                orc_x86_emit_mov_mmx_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2,
                                                         int aligned,
                                                         int uncached);

compiler :

size :

reg1 :

offset :

reg2 :

aligned :

uncached :


orc_x86_emit_mov_mmx_reg ()

void                orc_x86_emit_mov_mmx_reg            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_mmx_reg_reg ()

void                orc_x86_emit_mov_mmx_reg_reg        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_reg_memoffset ()

void                orc_x86_emit_mov_reg_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2);

compiler :

size :

reg1 :

offset :

reg2 :


orc_x86_emit_mov_reg_mmx ()

void                orc_x86_emit_mov_reg_mmx            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_reg_reg ()

void                orc_x86_emit_mov_reg_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);

compiler :

size :

reg1 :

reg2 :


orc_x86_emit_mov_reg_sse ()

void                orc_x86_emit_mov_reg_sse            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_sse_memoffset ()

void                orc_x86_emit_mov_sse_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int offset,
                                                         int reg2,
                                                         int aligned,
                                                         int uncached);

compiler :

size :

reg1 :

offset :

reg2 :

aligned :

uncached :


orc_x86_emit_mov_sse_reg ()

void                orc_x86_emit_mov_sse_reg            (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_mov_sse_reg_reg ()

void                orc_x86_emit_mov_sse_reg_reg        (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);

compiler :

reg1 :

reg2 :


orc_x86_emit_pop ()

void                orc_x86_emit_pop                    (OrcCompiler *compiler,
                                                         int size,
                                                         int reg);

compiler :

size :

reg :


orc_x86_emit_prologue ()

void                orc_x86_emit_prologue               (OrcCompiler *compiler);

compiler :


orc_x86_emit_push ()

void                orc_x86_emit_push                   (OrcCompiler *compiler,
                                                         int size,
                                                         int reg);

compiler :

size :

reg :


orc_x86_emit_ret ()

void                orc_x86_emit_ret                    (OrcCompiler *compiler);

compiler :


orc_x86_emit_rex ()

void                orc_x86_emit_rex                    (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2,
                                                         int reg3);

compiler :

size :

reg1 :

reg2 :

reg3 :


orc_x86_emit_sar_imm_reg ()

void                orc_x86_emit_sar_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg);

compiler :

size :

value :

reg :


orc_x86_emit_sub_memoffset_reg ()

void                orc_x86_emit_sub_memoffset_reg      (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg,
                                                         int destreg);

compiler :

size :

offset :

reg :

destreg :


orc_x86_emit_sub_reg_reg ()

void                orc_x86_emit_sub_reg_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);

compiler :

size :

reg1 :

reg2 :


orc_x86_emit_test_reg_reg ()

void                orc_x86_emit_test_reg_reg           (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2);

compiler :

size :

reg1 :

reg2 :


orc_x86_get_regname ()

const char *        orc_x86_get_regname                 (int i);

i :

Returns :


orc_x86_get_regname_16 ()

const char *        orc_x86_get_regname_16              (int i);

i :

Returns :


orc_x86_get_regname_64 ()

const char *        orc_x86_get_regname_64              (int i);

i :

Returns :


orc_x86_get_regname_mmx ()

const char *        orc_x86_get_regname_mmx             (int i);

i :

Returns :


orc_x86_get_regname_ptr ()

const char *        orc_x86_get_regname_ptr             (OrcCompiler *compiler,
                                                         int i);

compiler :

i :

Returns :


orc_x86_get_regname_sse ()

const char *        orc_x86_get_regname_sse             (int i);

i :

Returns :


orc_x86_get_regnum ()

int                 orc_x86_get_regnum                  (int i);

i :

Returns :


orc_x86_do_fixups ()

void                orc_x86_do_fixups                   (OrcCompiler *compiler);

compiler :