x86

x86 — code generation for x86

Synopsis

#define             orc_x86_emit_add_imm_memoffset      (p,
                                                         size,
                                                         value,
                                                         offset,
                                                         reg)
void                orc_x86_emit_add_imm_reg            (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int reg,
                                                         orc_bool record);
#define             orc_x86_emit_add_reg_memoffset      (p,
                                                         size,
                                                         src,
                                                         offset,
                                                         dest)
void                orc_x86_emit_align                  (OrcCompiler *compiler);
#define             orc_x86_emit_and_imm_memoffset      (p,
                                                         size,
                                                         value,
                                                         offset,
                                                         reg)
#define             orc_x86_emit_and_imm_reg            (p,
                                                         size,
                                                         value,
                                                         reg)
void                orc_x86_emit_cmp_imm_memoffset      (OrcCompiler *compiler,
                                                         int size,
                                                         int value,
                                                         int offset,
                                                         int reg);
#define             orc_x86_emit_cmp_reg_memoffset      (p,
                                                         size,
                                                         src,
                                                         offset,
                                                         dest)
void                orc_x86_emit_dec_memoffset          (OrcCompiler *compiler,
                                                         int size,
                                                         int offset,
                                                         int reg);
#define             orc_x86_emit_emms                   (p)
void                orc_x86_emit_epilogue               (OrcCompiler *compiler);
#define             orc_x86_emit_je                     (p,
                                                         label)
#define             orc_x86_emit_jle                    (p,
                                                         label)
#define             orc_x86_emit_jmp                    (p,
                                                         label)
#define             orc_x86_emit_jne                    (p,
                                                         label)
#define             orc_x86_emit_label                  (p,
                                                         label)
void                orc_x86_emit_modrm_memoffset        (OrcCompiler *compiler,
                                                         int offset,
                                                         int reg1,
                                                         int reg2);
void                orc_x86_emit_modrm_reg              (OrcCompiler *compiler,
                                                         int reg1,
                                                         int reg2);
#define             orc_x86_emit_mov_imm_reg            (p,
                                                         size,
                                                         value,
                                                         reg)
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);
#define             orc_x86_emit_mov_reg_reg            (p,
                                                         size,
                                                         src,
                                                         dest)
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);
#define             orc_x86_emit_ret                    (p)
void                orc_x86_emit_rex                    (OrcCompiler *compiler,
                                                         int size,
                                                         int reg1,
                                                         int reg2,
                                                         int reg3);
#define             orc_x86_emit_sar_imm_reg            (p,
                                                         size,
                                                         value,
                                                         reg)
#define             orc_x86_emit_sub_memoffset_reg      (p,
                                                         size,
                                                         offset,
                                                         src,
                                                         dest)
#define             orc_x86_emit_sub_reg_reg            (p,
                                                         size,
                                                         src,
                                                         dest)
#define             orc_x86_emit_test_reg_reg           (p,
                                                         size,
                                                         src,
                                                         dest)
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()

#define             orc_x86_emit_add_imm_memoffset(p,size,value,offset,reg)

p :

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,
                                                         orc_bool record);

compiler :

size :

value :

reg :

record :


orc_x86_emit_add_reg_memoffset()

#define             orc_x86_emit_add_reg_memoffset(p,size,src,offset,dest)

p :

size :

src :

offset :

dest :


orc_x86_emit_align ()

void                orc_x86_emit_align                  (OrcCompiler *compiler);

compiler :


orc_x86_emit_and_imm_memoffset()

#define             orc_x86_emit_and_imm_memoffset(p,size,value,offset,reg)

p :

size :

value :

offset :

reg :


orc_x86_emit_and_imm_reg()

#define             orc_x86_emit_and_imm_reg(p,size,value,reg)

p :

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()

#define             orc_x86_emit_cmp_reg_memoffset(p,size,src,offset,dest)

p :

size :

src :

offset :

dest :


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()

#define             orc_x86_emit_emms(p)

p :


orc_x86_emit_epilogue ()

void                orc_x86_emit_epilogue               (OrcCompiler *compiler);

compiler :


orc_x86_emit_je()

#define             orc_x86_emit_je(p,label)

p :

label :


orc_x86_emit_jle()

#define             orc_x86_emit_jle(p,label)

p :

label :


orc_x86_emit_jmp()

#define             orc_x86_emit_jmp(p,label)

p :

label :


orc_x86_emit_jne()

#define             orc_x86_emit_jne(p,label)

p :

label :


orc_x86_emit_label()

#define             orc_x86_emit_label(p,label)

p :

label :


orc_x86_emit_modrm_memoffset ()

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

compiler :

offset :

reg1 :

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()

#define             orc_x86_emit_mov_imm_reg(p,size,value,reg)

p :

size :

value :

reg :


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()

#define             orc_x86_emit_mov_reg_reg(p,size,src,dest)

p :

size :

src :

dest :


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()

#define             orc_x86_emit_ret(p)

p :


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()

#define             orc_x86_emit_sar_imm_reg(p,size,value,reg)

p :

size :

value :

reg :


orc_x86_emit_sub_memoffset_reg()

#define             orc_x86_emit_sub_memoffset_reg(p,size,offset,src,dest)

p :

size :

offset :

src :

dest :


orc_x86_emit_sub_reg_reg()

#define             orc_x86_emit_sub_reg_reg(p,size,src,dest)

p :

size :

src :

dest :


orc_x86_emit_test_reg_reg()

#define             orc_x86_emit_test_reg_reg(p,size,src,dest)

p :

size :

src :

dest :


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 :