| orcmmx.h | | orcmmx.h | |
| | | | |
| #ifndef _ORC_MMX_H_ | | #ifndef _ORC_MMX_H_ | |
| #define _ORC_MMX_H_ | | #define _ORC_MMX_H_ | |
| | | | |
| #include <orc/orcx86.h> | | #include <orc/orcx86.h> | |
|
| | | #include <orc/orcx86insn.h> | |
| | | | |
| ORC_BEGIN_DECLS | | ORC_BEGIN_DECLS | |
| | | | |
| typedef enum { | | typedef enum { | |
| ORC_TARGET_MMX_MMX = (1<<0), | | ORC_TARGET_MMX_MMX = (1<<0), | |
| ORC_TARGET_MMX_MMXEXT = (1<<1), | | ORC_TARGET_MMX_MMXEXT = (1<<1), | |
| ORC_TARGET_MMX_3DNOW = (1<<2), | | ORC_TARGET_MMX_3DNOW = (1<<2), | |
| ORC_TARGET_MMX_3DNOWEXT = (1<<3), | | ORC_TARGET_MMX_3DNOWEXT = (1<<3), | |
| ORC_TARGET_MMX_SSSE3 = (1<<4), | | ORC_TARGET_MMX_SSSE3 = (1<<4), | |
| ORC_TARGET_MMX_SSE4_1 = (1<<5), | | ORC_TARGET_MMX_SSE4_1 = (1<<5), | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 45 | |
| | | | |
| #define ORC_MMX_SHUF(a,b,c,d) ((((a)&3)<<6)|(((b)&3)<<4)|(((c)&3)<<2)|(((d)
&3)<<0)) | | #define ORC_MMX_SHUF(a,b,c,d) ((((a)&3)<<6)|(((b)&3)<<4)|(((c)&3)<<2)|(((d)
&3)<<0)) | |
| | | | |
| const char * orc_x86_get_regname_mmx(int i); | | const char * orc_x86_get_regname_mmx(int i); | |
| void orc_x86_emit_mov_memoffset_mmx (OrcCompiler *compiler, int size, int o
ffset, | | void orc_x86_emit_mov_memoffset_mmx (OrcCompiler *compiler, int size, int o
ffset, | |
| int reg1, int reg2, int is_aligned); | | int reg1, int reg2, int is_aligned); | |
| void orc_x86_emit_mov_memindex_mmx (OrcCompiler *compiler, int size, int of
fset, | | void orc_x86_emit_mov_memindex_mmx (OrcCompiler *compiler, int size, int of
fset, | |
| int reg1, int regindex, int shift, int reg2, int is_aligned); | | int reg1, int regindex, int shift, int reg2, int is_aligned); | |
| void orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int r
eg1, int offset, | | void orc_x86_emit_mov_mmx_memoffset (OrcCompiler *compiler, int size, int r
eg1, int offset, | |
| int reg2, int aligned, int uncached); | | int reg2, int aligned, int uncached); | |
|
| | | #if 0 | |
| void orc_x86_emit_mov_mmx_reg_reg (OrcCompiler *compiler, int reg1, int reg
2); | | void orc_x86_emit_mov_mmx_reg_reg (OrcCompiler *compiler, int reg1, int reg
2); | |
| void orc_x86_emit_mov_reg_mmx (OrcCompiler *compiler, int reg1, int reg2); | | void orc_x86_emit_mov_reg_mmx (OrcCompiler *compiler, int reg1, int reg2); | |
| void orc_x86_emit_mov_mmx_reg (OrcCompiler *compiler, int reg1, int reg2); | | void orc_x86_emit_mov_mmx_reg (OrcCompiler *compiler, int reg1, int reg2); | |
| void orc_mmx_emit_loadib (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadib (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadiw (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadiw (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadil (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadil (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadpb (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadpb (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadpw (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadpw (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadpl (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadpl (OrcCompiler *p, int reg, int value); | |
| void orc_mmx_emit_loadpq (OrcCompiler *p, int reg, int value); | | void orc_mmx_emit_loadpq (OrcCompiler *p, int reg, int value); | |
| | | | |
| skipping to change at line 71 | | skipping to change at line 73 | |
| void orc_mmx_emit_0f (OrcCompiler *p, const char *insn_name, int code, | | void orc_mmx_emit_0f (OrcCompiler *p, const char *insn_name, int code, | |
| int src, int dest); | | int src, int dest); | |
| void orc_mmx_emit_pshufw (OrcCompiler *p, int shuf, int src, int dest); | | void orc_mmx_emit_pshufw (OrcCompiler *p, int shuf, int src, int dest); | |
| void orc_mmx_emit_palignr (OrcCompiler *p, int align, int src, int dest); | | void orc_mmx_emit_palignr (OrcCompiler *p, int align, int src, int dest); | |
| void orc_mmx_emit_pinsrw_memoffset (OrcCompiler *p, int imm, int offset, | | void orc_mmx_emit_pinsrw_memoffset (OrcCompiler *p, int imm, int offset, | |
| int src, int dest); | | int src, int dest); | |
| void orc_mmx_emit_pextrw_memoffset (OrcCompiler *p, int imm, int src, | | void orc_mmx_emit_pextrw_memoffset (OrcCompiler *p, int imm, int src, | |
| int offset, int dest); | | int offset, int dest); | |
| void orc_mmx_emit_shiftimm (OrcCompiler *p, const char *insn_name, | | void orc_mmx_emit_shiftimm (OrcCompiler *p, const char *insn_name, | |
| int code, int modrm_code, int shift, int reg); | | int code, int modrm_code, int shift, int reg); | |
|
| | | #endif | |
| unsigned int orc_mmx_get_cpu_flags (void); | | unsigned int orc_mmx_get_cpu_flags (void); | |
| | | | |
| void orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, | | void orc_mmx_load_constant (OrcCompiler *compiler, int reg, int size, | |
| orc_uint64 value); | | orc_uint64 value); | |
| | | | |
|
| /* MMX instructions */ | | | |
| #define orc_mmx_emit_punpcklbw(p,a,b) orc_mmx_emit_660f (p, "punpcklbw", 0 | | | |
| x60, a, b) | | | |
| #define orc_mmx_emit_punpcklwd(p,a,b) orc_mmx_emit_660f (p, "punpcklwd", 0 | | | |
| x61, a, b) | | | |
| #define orc_mmx_emit_punpckldq(p,a,b) orc_mmx_emit_660f (p, "punpckldq", 0 | | | |
| x62, a, b) | | | |
| #define orc_mmx_emit_packsswb(p,a,b) orc_mmx_emit_660f (p, "packsswb", 0x | | | |
| 63, a, b) | | | |
| #define orc_mmx_emit_pcmpgtb(p,a,b) orc_mmx_emit_660f (p, "pcmpgtb", 0x6 | | | |
| 4, a, b) | | | |
| #define orc_mmx_emit_pcmpgtw(p,a,b) orc_mmx_emit_660f (p, "pcmpgtw", 0x6 | | | |
| 5, a, b) | | | |
| #define orc_mmx_emit_pcmpgtd(p,a,b) orc_mmx_emit_660f (p, "pcmpgtd", 0x6 | | | |
| 6, a, b) | | | |
| #define orc_mmx_emit_packuswb(p,a,b) orc_mmx_emit_660f (p, "packuswb", 0x | | | |
| 67, a, b) | | | |
| #define orc_mmx_emit_punpckhbw(p,a,b) orc_mmx_emit_660f (p, "punpckhbw", 0 | | | |
| x68, a, b) | | | |
| #define orc_mmx_emit_punpckhwd(p,a,b) orc_mmx_emit_660f (p, "punpckhwd", 0 | | | |
| x69, a, b) | | | |
| #define orc_mmx_emit_punpckhdq(p,a,b) orc_mmx_emit_660f (p, "punpckhdq", 0 | | | |
| x6a, a, b) | | | |
| #define orc_mmx_emit_packssdw(p,a,b) orc_mmx_emit_660f (p, "packssdw", 0x | | | |
| 6b, a, b) | | | |
| | | | |
| #define orc_mmx_emit_movq(p,a,b) orc_mmx_emit_660f (p, "movq", 0x6f, | | | |
| a, b) | | | |
| | | | |
| #define orc_mmx_emit_psraw_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psraw | | | |
| ", 0x71, 4, a, b) | | | |
| #define orc_mmx_emit_psrlw_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psrlw | | | |
| ", 0x71, 2, a, b) | | | |
| #define orc_mmx_emit_psllw_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psllw | | | |
| ", 0x71, 6, a, b) | | | |
| | | | |
| #define orc_mmx_emit_psrad_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psrad | | | |
| ", 0x72, 4, a, b) | | | |
| #define orc_mmx_emit_psrld_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psrld | | | |
| ", 0x72, 2, a, b) | | | |
| #define orc_mmx_emit_pslld_imm(p,a,b) orc_mmx_emit_shiftimm (p, "pslld | | | |
| ", 0x72, 6, a, b) | | | |
| | | | |
| #define orc_mmx_emit_psrlq_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psrlq | | | |
| ", 0x73, 2, a, b) | | | |
| #define orc_mmx_emit_psllq_imm(p,a,b) orc_mmx_emit_shiftimm (p, "psllq | | | |
| ", 0x73, 6, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pcmpeqb(p,a,b) orc_mmx_emit_660f (p, "pcmpeqb", 0x7 | | | |
| 4, a, b) | | | |
| #define orc_mmx_emit_pcmpeqw(p,a,b) orc_mmx_emit_660f (p, "pcmpeqw", 0x7 | | | |
| 5, a, b) | | | |
| #define orc_mmx_emit_pcmpeqd(p,a,b) orc_mmx_emit_660f (p, "pcmpeqd", 0x7 | | | |
| 6, a, b) | | | |
| #define orc_mmx_emit_emms(p) orc_x86_emit_emms (p) | | | |
| | | | |
| #define orc_mmx_emit_pmullw(p,a,b) orc_mmx_emit_660f (p, "pmullw", 0xd5 | | | |
| , a, b) | | | |
| | | | |
| #define orc_mmx_emit_psubusb(p,a,b) orc_mmx_emit_660f (p, "psubusb", 0xd | | | |
| 8, a, b) | | | |
| #define orc_mmx_emit_psubusw(p,a,b) orc_mmx_emit_660f (p, "psubusw", 0xd | | | |
| 9, a, b) | | | |
| #define orc_mmx_emit_pand(p,a,b) orc_mmx_emit_660f (p, "pand", 0xdb, | | | |
| a, b) | | | |
| #define orc_mmx_emit_paddusb(p,a,b) orc_mmx_emit_660f (p, "paddusb", 0xd | | | |
| c, a, b) | | | |
| #define orc_mmx_emit_paddusw(p,a,b) orc_mmx_emit_660f (p, "paddusw", 0xd | | | |
| d, a, b) | | | |
| #define orc_mmx_emit_pandn(p,a,b) orc_mmx_emit_660f (p, "pandn", 0xdf, | | | |
| a, b) | | | |
| | | | |
| #define orc_mmx_emit_pmulhw(p,a,b) orc_mmx_emit_660f (p, "pmulhw", 0xe5 | | | |
| , a, b) | | | |
| | | | |
| #define orc_mmx_emit_psubsb(p,a,b) orc_mmx_emit_660f (p, "psubsb", 0xe8 | | | |
| , a, b) | | | |
| #define orc_mmx_emit_psubsw(p,a,b) orc_mmx_emit_660f (p, "psubsw", 0xe9 | | | |
| , a, b) | | | |
| #define orc_mmx_emit_por(p,a,b) orc_mmx_emit_660f (p, "por", 0xeb, a | | | |
| , b) | | | |
| #define orc_mmx_emit_paddsb(p,a,b) orc_mmx_emit_660f (p, "paddsb", 0xec | | | |
| , a, b) | | | |
| #define orc_mmx_emit_paddsw(p,a,b) orc_mmx_emit_660f (p, "paddsw", 0xed | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pxor(p,a,b) orc_mmx_emit_660f (p, "pxor", 0xef, | | | |
| a, b) | | | |
| | | | |
| #define orc_mmx_emit_pmaddwd(p,a,b) orc_mmx_emit_660f (p, "pmaddwd", 0xf | | | |
| 5, a, b) | | | |
| | | | |
| #define orc_mmx_emit_psubb(p,a,b) orc_mmx_emit_660f (p, "psubb", 0xf8, | | | |
| a, b) | | | |
| #define orc_mmx_emit_psubw(p,a,b) orc_mmx_emit_660f (p, "psubw", 0xf9, | | | |
| a, b) | | | |
| #define orc_mmx_emit_psubd(p,a,b) orc_mmx_emit_660f (p, "psubd", 0xfa, | | | |
| a, b) | | | |
| | | | |
| #define orc_mmx_emit_paddb(p,a,b) orc_mmx_emit_660f (p, "paddb", 0xfc, | | | |
| a, b) | | | |
| #define orc_mmx_emit_paddw(p,a,b) orc_mmx_emit_660f (p, "paddw", 0xfd, | | | |
| a, b) | | | |
| #define orc_mmx_emit_paddd(p,a,b) orc_mmx_emit_660f (p, "paddd", 0xfe, | | | |
| a, b) | | | |
| | | | |
| /* MMX EXT instructions */ | | | |
| /* MMX SSE instructions */ | | | |
| #define orc_mmx_emit_pinsrw(p,a,b) orc_mmx_emit_660f (p, "pinsrw", 0xc4 | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pextrw(p,a,b) orc_mmx_emit_660f (p, "pextrw", 0xc5 | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pminub(p,a,b) orc_mmx_emit_660f (p, "pminub", 0xda | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pmaxub(p,a,b) orc_mmx_emit_660f (p, "pmaxub", 0xde | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pavgb(p,a,b) orc_mmx_emit_660f (p, "pavgb", 0xe0, | | | |
| a, b) | | | |
| #define orc_mmx_emit_pavgw(p,a,b) orc_mmx_emit_660f (p, "pavgw", 0xe3, | | | |
| a, b) | | | |
| #define orc_mmx_emit_pmulhuw(p,a,b) orc_mmx_emit_660f (p, "pmulhuw", 0xe | | | |
| 4, a, b) | | | |
| #define orc_mmx_emit_pminsw(p,a,b) orc_mmx_emit_660f (p, "pminsw", 0xea | | | |
| , a, b) | | | |
| #define orc_mmx_emit_pmaxsw(p,a,b) orc_mmx_emit_660f (p, "pmaxsw", 0xee | | | |
| , a, b) | | | |
| #define orc_mmx_emit_psadbw(p,a,b) orc_mmx_emit_660f (p, "psadbw", 0xf6 | | | |
| , a, b) | | | |
| | | | |
| /* 3DNow! instrunctions, FIXME, not correct */ | | | |
| #define orc_mmx_emit_pmulhrw(p,a,b) orc_mmx_emit_660f (p, "pmulhrw", 0xb | | | |
| 7, a, b) | | | |
| #define orc_mmx_emit_pavgusb(p,a,b) orc_mmx_emit_660f (p, "pavgusb", 0xb | | | |
| f, a, b) | | | |
| | | | |
| /* MMX SSE2 instructions */ | | | |
| #define orc_mmx_emit_paddq(p,a,b) orc_mmx_emit_660f (p, "paddq", 0xd4, | | | |
| a, b) | | | |
| #define orc_mmx_emit_psubq(p,a,b) orc_mmx_emit_660f (p, "psubq", 0xfb, | | | |
| a, b) | | | |
| #define orc_mmx_emit_pmuludq(p,a,b) orc_mmx_emit_660f (p, "pmuludq", 0xf | | | |
| 4, a, b) | | | |
| | | | |
| /* MMX SSE3 instructions */ | | | |
| | | | |
| /* MMX SSSE3 instructions */ | | | |
| #define orc_mmx_emit_pshufb(p,a,b) orc_mmx_emit_660f (p, "pshufb", 0x38 | | | |
| 00, a, b) | | | |
| #define orc_mmx_emit_phaddw(p,a,b) orc_mmx_emit_660f (p, "phaddw", 0x38 | | | |
| 01, a, b) | | | |
| #define orc_mmx_emit_phaddd(p,a,b) orc_mmx_emit_660f (p, "phaddd", 0x38 | | | |
| 02, a, b) | | | |
| #define orc_mmx_emit_phaddsw(p,a,b) orc_mmx_emit_660f (p, "phaddsw", 0x3 | | | |
| 803, a, b) | | | |
| #define orc_mmx_emit_pmaddubsw(p,a,b) orc_mmx_emit_660f (p, "pmaddubsw", 0 | | | |
| x3804, a, b) | | | |
| #define orc_mmx_emit_phsubw(p,a,b) orc_mmx_emit_660f (p, "phsubw", 0x38 | | | |
| 05, a, b) | | | |
| #define orc_mmx_emit_phsubd(p,a,b) orc_mmx_emit_660f (p, "phsubd", 0x38 | | | |
| 06, a, b) | | | |
| #define orc_mmx_emit_phsubsw(p,a,b) orc_mmx_emit_660f (p, "phsubsw", 0x3 | | | |
| 807, a, b) | | | |
| #define orc_mmx_emit_psignb(p,a,b) orc_mmx_emit_660f (p, "psignb", 0x38 | | | |
| 08, a, b) | | | |
| #define orc_mmx_emit_psignw(p,a,b) orc_mmx_emit_660f (p, "psignw", 0x38 | | | |
| 09, a, b) | | | |
| #define orc_mmx_emit_psignd(p,a,b) orc_mmx_emit_660f (p, "psignd", 0x38 | | | |
| 0a, a, b) | | | |
| #define orc_mmx_emit_pmulhrsw(p,a,b) orc_mmx_emit_660f (p, "pmulhrsw", 0x | | | |
| 380b, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pabsb(p,a,b) orc_mmx_emit_660f (p, "pabsb", 0x381 | | | |
| c, a, b) | | | |
| #define orc_mmx_emit_pabsw(p,a,b) orc_mmx_emit_660f (p, "pabsw", 0x381 | | | |
| d, a, b) | | | |
| #define orc_mmx_emit_pabsd(p,a,b) orc_mmx_emit_660f (p, "pabsd", 0x381 | | | |
| e, a, b) | | | |
| | | | |
| /* MMX SSE4.1 instructions */ | | | |
| #define orc_mmx_emit_pmovsxbw(p,a,b) orc_mmx_emit_660f (p, "pmovsxbw", 0x | | | |
| 3820, a, b) | | | |
| #define orc_mmx_emit_pmovsxbd(p,a,b) orc_mmx_emit_660f (p, "pmovsxbd", 0x | | | |
| 3821, a, b) | | | |
| #define orc_mmx_emit_pmovsxbq(p,a,b) orc_mmx_emit_660f (p, "pmovsxbq", 0x | | | |
| 3822, a, b) | | | |
| #define orc_mmx_emit_pmovsxwd(p,a,b) orc_mmx_emit_660f (p, "pmovsxwd", 0x | | | |
| 3823, a, b) | | | |
| #define orc_mmx_emit_pmovsxwq(p,a,b) orc_mmx_emit_660f (p, "pmovsxwq", 0x | | | |
| 3824, a, b) | | | |
| #define orc_mmx_emit_pmovsxdq(p,a,b) orc_mmx_emit_660f (p, "pmovsxdq", 0x | | | |
| 3825, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pmuldq(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 | | | |
| 28, a, b) | | | |
| #define orc_mmx_emit_pcmpeqq(p,a,b) orc_mmx_emit_660f (p, "pcmpeqq", 0x3 | | | |
| 829, a, b) | | | |
| | | | |
| #define orc_mmx_emit_packusdw(p,a,b) orc_mmx_emit_660f (p, "packusdw", 0x | | | |
| 382b, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pmovzxbw(p,a,b) orc_mmx_emit_660f (p, "pmovzxbw", 0x | | | |
| 3830, a, b) | | | |
| #define orc_mmx_emit_pmovzxbd(p,a,b) orc_mmx_emit_660f (p, "pmovzxbd", 0x | | | |
| 3831, a, b) | | | |
| #define orc_mmx_emit_pmovzxbq(p,a,b) orc_mmx_emit_660f (p, "pmovzxbq", 0x | | | |
| 3832, a, b) | | | |
| #define orc_mmx_emit_pmovzxwd(p,a,b) orc_mmx_emit_660f (p, "pmovzxwd", 0x | | | |
| 3833, a, b) | | | |
| #define orc_mmx_emit_pmovzxwq(p,a,b) orc_mmx_emit_660f (p, "pmovzxwq", 0x | | | |
| 3834, a, b) | | | |
| #define orc_mmx_emit_pmovzxdq(p,a,b) orc_mmx_emit_660f (p, "pmovzxdq", 0x | | | |
| 3835, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pmulld(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 | | | |
| 40, a, b) | | | |
| #define orc_mmx_emit_phminposuw(p,a,b) orc_mmx_emit_660f (p, "phminposuw", | | | |
| 0x3841, a, b) | | | |
| | | | |
| #define orc_mmx_emit_pminsb(p,a,b) orc_mmx_emit_660f (p, "pminsb", 0x38 | | | |
| 38, a, b) | | | |
| #define orc_mmx_emit_pminsd(p,a,b) orc_mmx_emit_660f (p, "pminsd", 0x38 | | | |
| 39, a, b) | | | |
| #define orc_mmx_emit_pminuw(p,a,b) orc_mmx_emit_660f (p, "pminuw", 0x38 | | | |
| 3a, a, b) | | | |
| #define orc_mmx_emit_pminud(p,a,b) orc_mmx_emit_660f (p, "pminud", 0x38 | | | |
| 3b, a, b) | | | |
| #define orc_mmx_emit_pmaxsb(p,a,b) orc_mmx_emit_660f (p, "pmaxsb", 0x38 | | | |
| 3c, a, b) | | | |
| #define orc_mmx_emit_pmaxsd(p,a,b) orc_mmx_emit_660f (p, "pmaxsd", 0x38 | | | |
| 3d, a, b) | | | |
| #define orc_mmx_emit_pmaxuw(p,a,b) orc_mmx_emit_660f (p, "pmaxuw", 0x38 | | | |
| 3e, a, b) | | | |
| #define orc_mmx_emit_pmaxud(p,a,b) orc_mmx_emit_660f (p, "pmaxud", 0x38 | | | |
| 3f, a, b) | | | |
| | | | |
| /* SSE4.2 instructions */ | | | |
| #define orc_mmx_emit_pcmpgtq(p,a,b) orc_mmx_emit_660f (p, "pcmpgtq", 0x3 | | | |
| 837, a, b) | | | |
| | | | |
| #endif | | #endif | |
| | | | |
| ORC_END_DECLS | | ORC_END_DECLS | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 4 change blocks. |
| 238 lines changed or deleted | | 3 lines changed or added | |
|
| orcprogram.h | | orcprogram.h | |
| | | | |
| skipping to change at line 225 | | skipping to change at line 225 | |
| | | | |
| int used; | | int used; | |
| int first_use; | | int first_use; | |
| int last_use; | | int last_use; | |
| int replaced; | | int replaced; | |
| int replacement; | | int replacement; | |
| | | | |
| int alloc; | | int alloc; | |
| int is_chained; | | int is_chained; | |
| int is_aligned; | | int is_aligned; | |
|
| | | int alignment; | |
| int is_uncached; | | int is_uncached; | |
| | | | |
| orc_union64 value; | | orc_union64 value; | |
| | | | |
| int ptr_register; | | int ptr_register; | |
| int ptr_offset; | | int ptr_offset; | |
| int mask_alloc; | | int mask_alloc; | |
| int aligned_data; | | int aligned_data; | |
| int param_type; | | int param_type; | |
| int load_dest; | | int load_dest; | |
| | | | |
| skipping to change at line 408 | | skipping to change at line 409 | |
| unsigned char *_unused2; | | unsigned char *_unused2; | |
| /* The offset of code_exec in this structure is part of the ABI */ | | /* The offset of code_exec in this structure is part of the ABI */ | |
| void *code_exec; | | void *code_exec; | |
| | | | |
| OrcInstruction insns[ORC_N_INSNS]; | | OrcInstruction insns[ORC_N_INSNS]; | |
| OrcVariable vars[ORC_N_VARIABLES]; | | OrcVariable vars[ORC_N_VARIABLES]; | |
| | | | |
| void *backup_func; | | void *backup_func; | |
| int is_2d; | | int is_2d; | |
| int constant_n; | | int constant_n; | |
|
| | | int n_multiple; | |
| | | int n_minimum; | |
| | | int n_maximum; | |
| int constant_m; | | int constant_m; | |
| | | | |
| OrcCode *orccode; | | OrcCode *orccode; | |
| | | | |
| /* Hide this here. Belongs in a Parser object */ | | /* Hide this here. Belongs in a Parser object */ | |
| char *init_function; | | char *init_function; | |
|
| | | char *error_msg; | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * OrcCompiler: | | * OrcCompiler: | |
| * | | * | |
| * The OrcCompiler structure has no public members | | * The OrcCompiler structure has no public members | |
| */ | | */ | |
| struct _OrcCompiler { | | struct _OrcCompiler { | |
| /*< private >*/ | | /*< private >*/ | |
| OrcProgram *program; | | OrcProgram *program; | |
| | | | |
| skipping to change at line 444 | | skipping to change at line 449 | |
| | | | |
| unsigned char *code; | | unsigned char *code; | |
| unsigned char *codeptr; | | unsigned char *codeptr; | |
| | | | |
| OrcConstant constants[ORC_N_CONSTANTS]; | | OrcConstant constants[ORC_N_CONSTANTS]; | |
| int n_constants; | | int n_constants; | |
| | | | |
| OrcFixup fixups[ORC_N_FIXUPS]; | | OrcFixup fixups[ORC_N_FIXUPS]; | |
| int n_fixups; | | int n_fixups; | |
| unsigned char *labels[ORC_N_LABELS]; | | unsigned char *labels[ORC_N_LABELS]; | |
|
| | | int labels_int[ORC_N_LABELS]; | |
| int n_labels; | | int n_labels; | |
| | | | |
| int error; | | int error; | |
|
| | | char *error_msg; | |
| OrcCompileResult result; | | OrcCompileResult result; | |
| | | | |
| int valid_regs[ORC_N_REGS]; | | int valid_regs[ORC_N_REGS]; | |
| int save_regs[ORC_N_REGS]; | | int save_regs[ORC_N_REGS]; | |
| int used_regs[ORC_N_REGS]; | | int used_regs[ORC_N_REGS]; | |
| int alloc_regs[ORC_N_REGS]; | | int alloc_regs[ORC_N_REGS]; | |
| | | | |
| int loop_shift; | | int loop_shift; | |
| int long_jumps; | | int long_jumps; | |
| int use_frame_pointer; | | int use_frame_pointer; | |
| | | | |
| skipping to change at line 485 | | skipping to change at line 492 | |
| int size_region; | | int size_region; | |
| int has_iterator_opcode; | | int has_iterator_opcode; | |
| | | | |
| int offset; | | int offset; | |
| int min_temp_reg; | | int min_temp_reg; | |
| int max_used_temp_reg; | | int max_used_temp_reg; | |
| | | | |
| int insn_shift; /* used when emitting rules */ | | int insn_shift; /* used when emitting rules */ | |
| int max_var_size; /* size of largest var */ | | int max_var_size; /* size of largest var */ | |
| int load_params; | | int load_params; | |
|
| | | | |
| | | void *output_insns; | |
| | | int n_output_insns; | |
| | | int n_output_insns_alloc; | |
| }; | | }; | |
| | | | |
| #define ORC_SRC_ARG(p,i,n) ((p)->vars[(i)->src_args[(n)]].alloc) | | #define ORC_SRC_ARG(p,i,n) ((p)->vars[(i)->src_args[(n)]].alloc) | |
| #define ORC_DEST_ARG(p,i,n) ((p)->vars[(i)->dest_args[(n)]].alloc) | | #define ORC_DEST_ARG(p,i,n) ((p)->vars[(i)->dest_args[(n)]].alloc) | |
| #define ORC_SRC_TYPE(p,i,n) ((p)->vars[(i)->src_args[(n)]].vartype) | | #define ORC_SRC_TYPE(p,i,n) ((p)->vars[(i)->src_args[(n)]].vartype) | |
| #define ORC_DEST_TYPE(p,i,n) ((p)->vars[(i)->dest_args[(n)]].vartype) | | #define ORC_DEST_TYPE(p,i,n) ((p)->vars[(i)->dest_args[(n)]].vartype) | |
| #define ORC_SRC_VAL(p,insn,n) ((p)->vars[(insn)->src_args[(n)]].value.i) | | #define ORC_SRC_VAL(p,insn,n) ((p)->vars[(insn)->src_args[(n)]].value.i) | |
| #define ORC_DEST_VAL(p,insn,n) ((p)->vars[(insn)->dest_args[(n)]].value.i) | | #define ORC_DEST_VAL(p,insn,n) ((p)->vars[(insn)->dest_args[(n)]].value.i) | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 635 | | skipping to change at line 646 | |
| OrcProgram * orc_program_new_dss (int size1, int size2, int size3); | | OrcProgram * orc_program_new_dss (int size1, int size2, int size3); | |
| OrcProgram * orc_program_new_as (int size1, int size2); | | OrcProgram * orc_program_new_as (int size1, int size2); | |
| OrcProgram * orc_program_new_ass (int size1, int size2, int size3); | | OrcProgram * orc_program_new_ass (int size1, int size2, int size3); | |
| OrcStaticOpcode * orc_opcode_find_by_name (const char *name); | | OrcStaticOpcode * orc_opcode_find_by_name (const char *name); | |
| void orc_opcode_init (void); | | void orc_opcode_init (void); | |
| | | | |
| const char * orc_program_get_name (OrcProgram *program); | | const char * orc_program_get_name (OrcProgram *program); | |
| void orc_program_set_name (OrcProgram *program, const char *name); | | void orc_program_set_name (OrcProgram *program, const char *name); | |
| void orc_program_set_2d (OrcProgram *program); | | void orc_program_set_2d (OrcProgram *program); | |
| void orc_program_set_constant_n (OrcProgram *program, int n); | | void orc_program_set_constant_n (OrcProgram *program, int n); | |
|
| | | void orc_program_set_n_multiple (OrcProgram *ex, int n); | |
| | | void orc_program_set_n_minimum (OrcProgram *ex, int n); | |
| | | void orc_program_set_n_maximum (OrcProgram *ex, int n); | |
| void orc_program_set_constant_m (OrcProgram *program, int m); | | void orc_program_set_constant_m (OrcProgram *program, int m); | |
| | | | |
| void orc_program_append (OrcProgram *p, const char *opcode, int arg0, int a
rg1, int arg2); | | void orc_program_append (OrcProgram *p, const char *opcode, int arg0, int a
rg1, int arg2); | |
| void orc_program_append_2 (OrcProgram *program, const char *name, | | void orc_program_append_2 (OrcProgram *program, const char *name, | |
| unsigned int flags, int arg0, int arg1, int arg2, int arg3); | | unsigned int flags, int arg0, int arg1, int arg2, int arg3); | |
| void orc_program_append_str (OrcProgram *p, const char *opcode, | | void orc_program_append_str (OrcProgram *p, const char *opcode, | |
| const char * arg0, const char * arg1, const char * arg2); | | const char * arg0, const char * arg1, const char * arg2); | |
| void orc_program_append_str_2 (OrcProgram *program, const char *name, | | void orc_program_append_str_2 (OrcProgram *program, const char *name, | |
| unsigned int flags, const char *arg1, const char *arg2, const char *arg
3, | | unsigned int flags, const char *arg1, const char *arg2, const char *arg
3, | |
| const char *arg4); | | const char *arg4); | |
| | | | |
| skipping to change at line 673 | | skipping to change at line 687 | |
| OrcCompileResult orc_program_compile_full (OrcProgram *p, OrcTarget *target
, | | OrcCompileResult orc_program_compile_full (OrcProgram *p, OrcTarget *target
, | |
| unsigned int flags); | | unsigned int flags); | |
| void orc_program_set_backup_function (OrcProgram *p, OrcExecutorFunc func); | | void orc_program_set_backup_function (OrcProgram *p, OrcExecutorFunc func); | |
| void orc_program_free (OrcProgram *program); | | void orc_program_free (OrcProgram *program); | |
| | | | |
| int orc_program_find_var_by_name (OrcProgram *program, const char *name); | | int orc_program_find_var_by_name (OrcProgram *program, const char *name); | |
| | | | |
| int orc_program_add_temporary (OrcProgram *program, int size, const char *n
ame); | | int orc_program_add_temporary (OrcProgram *program, int size, const char *n
ame); | |
| int orc_program_dup_temporary (OrcProgram *program, int i, int j); | | int orc_program_dup_temporary (OrcProgram *program, int i, int j); | |
| int orc_program_add_source (OrcProgram *program, int size, const char *name
); | | int orc_program_add_source (OrcProgram *program, int size, const char *name
); | |
|
| | | int orc_program_add_source_full (OrcProgram *program, int size, const char | |
| | | *name, | |
| | | const char *type_name, int alignment); | |
| int orc_program_add_destination (OrcProgram *program, int size, const char
*name); | | int orc_program_add_destination (OrcProgram *program, int size, const char
*name); | |
|
| | | int orc_program_add_destination_full (OrcProgram *program, int size, const | |
| | | char *name, | |
| | | const char *type_name, int alignment); | |
| int orc_program_add_constant (OrcProgram *program, int size, int value, con
st char *name); | | int orc_program_add_constant (OrcProgram *program, int size, int value, con
st char *name); | |
| int orc_program_add_constant_int64 (OrcProgram *program, int size, orc_int6
4 value, const char *name); | | int orc_program_add_constant_int64 (OrcProgram *program, int size, orc_int6
4 value, const char *name); | |
| int orc_program_add_constant_float (OrcProgram *program, int size, float va
lue, const char *name); | | int orc_program_add_constant_float (OrcProgram *program, int size, float va
lue, const char *name); | |
| int orc_program_add_constant_double (OrcProgram *program, int size, double
value, const char *name); | | int orc_program_add_constant_double (OrcProgram *program, int size, double
value, const char *name); | |
| int orc_program_add_constant_str (OrcProgram *program, int size, const char
*value, const char *name); | | int orc_program_add_constant_str (OrcProgram *program, int size, const char
*value, const char *name); | |
| int orc_program_add_parameter (OrcProgram *program, int size, const char *n
ame); | | int orc_program_add_parameter (OrcProgram *program, int size, const char *n
ame); | |
| int orc_program_add_parameter_float (OrcProgram *program, int size, const c
har *name); | | int orc_program_add_parameter_float (OrcProgram *program, int size, const c
har *name); | |
| int orc_program_add_parameter_double (OrcProgram *program, int size, const
char *name); | | int orc_program_add_parameter_double (OrcProgram *program, int size, const
char *name); | |
| int orc_program_add_parameter_int64 (OrcProgram *program, int size, const c
har *name); | | int orc_program_add_parameter_int64 (OrcProgram *program, int size, const c
har *name); | |
| int orc_program_add_accumulator (OrcProgram *program, int size, const char
*name); | | int orc_program_add_accumulator (OrcProgram *program, int size, const char
*name); | |
| void orc_program_set_type_name (OrcProgram *program, int var, const char *t
ype_name); | | void orc_program_set_type_name (OrcProgram *program, int var, const char *t
ype_name); | |
|
| | | void orc_program_set_var_alignment (OrcProgram *program, int var, int align
ment); | |
| void orc_program_set_sampling_type (OrcProgram *program, int var, int sampl
ing_type); | | void orc_program_set_sampling_type (OrcProgram *program, int var, int sampl
ing_type); | |
| | | | |
| OrcExecutor * orc_executor_new (OrcProgram *program); | | OrcExecutor * orc_executor_new (OrcProgram *program); | |
| void orc_executor_free (OrcExecutor *ex); | | void orc_executor_free (OrcExecutor *ex); | |
| void orc_executor_set_program (OrcExecutor *ex, OrcProgram *program); | | void orc_executor_set_program (OrcExecutor *ex, OrcProgram *program); | |
| void orc_executor_set_array (OrcExecutor *ex, int var, void *ptr); | | void orc_executor_set_array (OrcExecutor *ex, int var, void *ptr); | |
| void orc_executor_set_stride (OrcExecutor *ex, int var, int stride); | | void orc_executor_set_stride (OrcExecutor *ex, int var, int stride); | |
| void orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *p
tr); | | void orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *p
tr); | |
| void orc_executor_set_param (OrcExecutor *ex, int var, int value); | | void orc_executor_set_param (OrcExecutor *ex, int var, int value); | |
| void orc_executor_set_param_str (OrcExecutor *ex, const char *name, int val
ue); | | void orc_executor_set_param_str (OrcExecutor *ex, const char *name, int val
ue); | |
| | | | |
| skipping to change at line 734 | | skipping to change at line 753 | |
| void orc_code_allocate_codemem (OrcCode *code, int size); | | void orc_code_allocate_codemem (OrcCode *code, int size); | |
| int orc_compiler_label_new (OrcCompiler *compiler); | | int orc_compiler_label_new (OrcCompiler *compiler); | |
| int orc_compiler_get_constant (OrcCompiler *compiler, int size, int value); | | int orc_compiler_get_constant (OrcCompiler *compiler, int size, int value); | |
| int orc_compiler_get_constant_long (OrcCompiler *compiler, orc_uint32 a, | | int orc_compiler_get_constant_long (OrcCompiler *compiler, orc_uint32 a, | |
| orc_uint32 b, orc_uint32 c, orc_uint32 d); | | orc_uint32 b, orc_uint32 c, orc_uint32 d); | |
| int orc_compiler_try_get_constant_long (OrcCompiler *compiler, orc_uint32 a
, | | int orc_compiler_try_get_constant_long (OrcCompiler *compiler, orc_uint32 a
, | |
| orc_uint32 b, orc_uint32 c, orc_uint32 d); | | orc_uint32 b, orc_uint32 c, orc_uint32 d); | |
| int orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int va
lue); | | int orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int va
lue); | |
| int orc_compiler_get_temp_reg (OrcCompiler *compiler); | | int orc_compiler_get_temp_reg (OrcCompiler *compiler); | |
| int orc_compiler_get_constant_reg (OrcCompiler *compiler); | | int orc_compiler_get_constant_reg (OrcCompiler *compiler); | |
|
| | | void orc_compiler_error (OrcCompiler *compiler, const char *fmt, ...); | |
| | | | |
| void orc_program_reset (OrcProgram *program); | | void orc_program_reset (OrcProgram *program); | |
| OrcCode *orc_program_take_code (OrcProgram *program); | | OrcCode *orc_program_take_code (OrcProgram *program); | |
| | | | |
| const char *orc_program_get_asm_code (OrcProgram *program); | | const char *orc_program_get_asm_code (OrcProgram *program); | |
| const char *orc_target_get_asm_preamble (const char *target); | | const char *orc_target_get_asm_preamble (const char *target); | |
| const char * orc_target_get_preamble (OrcTarget *target); | | const char * orc_target_get_preamble (OrcTarget *target); | |
| const char * orc_target_c_get_typedefs (void); | | const char * orc_target_c_get_typedefs (void); | |
|
| | | const char * orc_program_get_error (OrcProgram *program); | |
| | | | |
| void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...) | | void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...) | |
| ORC_GNU_PRINTF(2,3); | | ORC_GNU_PRINTF(2,3); | |
| | | | |
| void orc_target_register (OrcTarget *target); | | void orc_target_register (OrcTarget *target); | |
| OrcTarget *orc_target_get_by_name (const char *target_name); | | OrcTarget *orc_target_get_by_name (const char *target_name); | |
| int orc_program_get_max_array_size (OrcProgram *program); | | int orc_program_get_max_array_size (OrcProgram *program); | |
| int orc_program_get_max_accumulator_size (OrcProgram *program); | | int orc_program_get_max_accumulator_size (OrcProgram *program); | |
| | | | |
| void orc_get_data_cache_sizes (int *level1, int *level2, int *level3); | | void orc_get_data_cache_sizes (int *level1, int *level2, int *level3); | |
| | | | |
| skipping to change at line 773 | | skipping to change at line 794 | |
| extern int _orc_data_cache_size_level2; | | extern int _orc_data_cache_size_level2; | |
| extern int _orc_data_cache_size_level3; | | extern int _orc_data_cache_size_level3; | |
| extern int _orc_cpu_family; | | extern int _orc_cpu_family; | |
| extern int _orc_cpu_model; | | extern int _orc_cpu_model; | |
| extern int _orc_cpu_stepping; | | extern int _orc_cpu_stepping; | |
| extern const char *_orc_cpu_name; | | extern const char *_orc_cpu_name; | |
| | | | |
| extern int _orc_compiler_flag_backup; | | extern int _orc_compiler_flag_backup; | |
| extern int _orc_compiler_flag_emulate; | | extern int _orc_compiler_flag_emulate; | |
| extern int _orc_compiler_flag_debug; | | extern int _orc_compiler_flag_debug; | |
|
| | | extern int _orc_compiler_flag_randomize; | |
| | | | |
| void orc_code_chunk_free (OrcCodeChunk *chunk); | | void orc_code_chunk_free (OrcCodeChunk *chunk); | |
| | | | |
| #endif | | #endif | |
| | | | |
| ORC_END_DECLS | | ORC_END_DECLS | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 13 change blocks. |
| 0 lines changed or deleted | | 24 lines changed or added | |
|
| orcx86.h | | orcx86.h | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 62 | |
| const char * orc_x86_get_regname_64(int i); | | const char * orc_x86_get_regname_64(int i); | |
| const char * orc_x86_get_regname_ptr(OrcCompiler *compiler, int i); | | const char * orc_x86_get_regname_ptr(OrcCompiler *compiler, int i); | |
| const char * orc_x86_get_regname_size(int i, int size); | | const char * orc_x86_get_regname_size(int i, int size); | |
| | | | |
| void orc_x86_emit_push (OrcCompiler *compiler, int size, int reg); | | void orc_x86_emit_push (OrcCompiler *compiler, int size, int reg); | |
| void orc_x86_emit_pop (OrcCompiler *compiler, int size, int reg); | | void orc_x86_emit_pop (OrcCompiler *compiler, int size, int reg); | |
| | | | |
| #define orc_x86_emit_mov_imm_reg(p,size,value,reg) \ | | #define orc_x86_emit_mov_imm_reg(p,size,value,reg) \ | |
| orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_mov_imm32_r, size, value, reg) | | orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_mov_imm32_r, size, value, reg) | |
| #define orc_x86_emit_mov_reg_reg(p,size,src,dest) \ | | #define orc_x86_emit_mov_reg_reg(p,size,src,dest) \ | |
|
| orc_x86_emit_cpuinsn (p, ORC_X86_mov_r_rm, size, src, dest) | | orc_x86_emit_cpuinsn_size (p, ORC_X86_mov_r_rm, size, src, dest) | |
| #define orc_x86_emit_test_reg_reg(p,size,src,dest) \ | | #define orc_x86_emit_test_reg_reg(p,size,src,dest) \ | |
|
| orc_x86_emit_cpuinsn (p, ORC_X86_test, size, src, dest) | | orc_x86_emit_cpuinsn_size (p, ORC_X86_test, size, src, dest) | |
| #define orc_x86_emit_sar_imm_reg(p,size,value,reg) do { \ | | #define orc_x86_emit_sar_imm_reg(p,size,value,reg) do { \ | |
| if (value == 1) { \ | | if (value == 1) { \ | |
| orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_sar, size, value, reg); \ | | orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_sar, size, value, reg); \ | |
| } else if (value > 1) { \ | | } else if (value > 1) { \ | |
| orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_sar_imm, size, value, reg);
\ | | orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_sar_imm, size, value, reg);
\ | |
| } \ | | } \ | |
| } while (0) | | } while (0) | |
| #define orc_x86_emit_and_imm_memoffset(p,size,value,offset,reg) \ | | #define orc_x86_emit_and_imm_memoffset(p,size,value,offset,reg) \ | |
| orc_x86_emit_cpuinsn_imm_memoffset (p, (value >= -128 && value < 128) ? \ | | orc_x86_emit_cpuinsn_imm_memoffset (p, (value >= -128 && value < 128) ? \ | |
| ORC_X86_and_imm8_rm : ORC_X86_and_imm32_rm, size, value, offset, reg) | | ORC_X86_and_imm8_rm : ORC_X86_and_imm32_rm, size, value, offset, reg) | |
| | | | |
| skipping to change at line 92 | | skipping to change at line 92 | |
| orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_and_imm32_rm, size, value, r
eg); \ | | orc_x86_emit_cpuinsn_imm_reg (p, ORC_X86_and_imm32_rm, size, value, r
eg); \ | |
| } \ | | } \ | |
| } \ | | } \ | |
| } while (0) | | } while (0) | |
| #define orc_x86_emit_add_imm_memoffset(p,size,value,offset,reg) \ | | #define orc_x86_emit_add_imm_memoffset(p,size,value,offset,reg) \ | |
| orc_x86_emit_cpuinsn_imm_memoffset (p, (value >= -128 && value < 128) ? \ | | orc_x86_emit_cpuinsn_imm_memoffset (p, (value >= -128 && value < 128) ? \ | |
| ORC_X86_add_imm8_rm : ORC_X86_add_imm32_rm, size, value, offset, reg) | | ORC_X86_add_imm8_rm : ORC_X86_add_imm32_rm, size, value, offset, reg) | |
| #define orc_x86_emit_add_reg_memoffset(p,size,src,offset,dest) \ | | #define orc_x86_emit_add_reg_memoffset(p,size,src,offset,dest) \ | |
| orc_x86_emit_cpuinsn_reg_memoffset(p, ORC_X86_add_r_rm, src, offset, dest
) | | orc_x86_emit_cpuinsn_reg_memoffset(p, ORC_X86_add_r_rm, src, offset, dest
) | |
| #define orc_x86_emit_add_reg_reg(p,size,src,dest) \ | | #define orc_x86_emit_add_reg_reg(p,size,src,dest) \ | |
|
| orc_x86_emit_cpuinsn(p, ORC_X86_add_r_rm, size, src, dest) | | orc_x86_emit_cpuinsn_size(p, ORC_X86_add_r_rm, size, src, dest) | |
| #define orc_x86_emit_add_memoffset_reg(p,size,offset,src,dest) \ | | #define orc_x86_emit_add_memoffset_reg(p,size,offset,src,dest) \ | |
| orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_add_rm_r, size, offset, src
, dest) | | orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_add_rm_r, size, offset, src
, dest) | |
| #define orc_x86_emit_sub_reg_reg(p,size,src,dest) \ | | #define orc_x86_emit_sub_reg_reg(p,size,src,dest) \ | |
|
| orc_x86_emit_cpuinsn(p, ORC_X86_sub_r_rm, size, src, dest) | | orc_x86_emit_cpuinsn_size(p, ORC_X86_sub_r_rm, size, src, dest) | |
| #define orc_x86_emit_sub_memoffset_reg(p,size,offset,src,dest) \ | | #define orc_x86_emit_sub_memoffset_reg(p,size,offset,src,dest) \ | |
| orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_sub_rm_r, size, offset, src
, dest) | | orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_sub_rm_r, size, offset, src
, dest) | |
| #define orc_x86_emit_imul_memoffset_reg(p,size,offset,src,dest) \ | | #define orc_x86_emit_imul_memoffset_reg(p,size,offset,src,dest) \ | |
| orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_imul_rm_r, size, offset, sr
c, dest) | | orc_x86_emit_cpuinsn_memoffset_reg(p, ORC_X86_imul_rm_r, size, offset, sr
c, dest) | |
| | | | |
| #define orc_x86_emit_cmp_reg_memoffset(p,size,src,offset,dest) \ | | #define orc_x86_emit_cmp_reg_memoffset(p,size,src,offset,dest) \ | |
| orc_x86_emit_cpuinsn_reg_memoffset(p, ORC_X86_cmp_r_rm, src, offset, dest
) | | orc_x86_emit_cpuinsn_reg_memoffset(p, ORC_X86_cmp_r_rm, src, offset, dest
) | |
| | | | |
| #define orc_x86_emit_jmp(p,label) \ | | #define orc_x86_emit_jmp(p,label) \ | |
| orc_x86_emit_cpuinsn_branch (p, ORC_X86_jmp, label) | | orc_x86_emit_cpuinsn_branch (p, ORC_X86_jmp, label) | |
| #define orc_x86_emit_jg(p,label) \ | | #define orc_x86_emit_jg(p,label) \ | |
| orc_x86_emit_cpuinsn_branch (p, ORC_X86_jg, label) | | orc_x86_emit_cpuinsn_branch (p, ORC_X86_jg, label) | |
| #define orc_x86_emit_jle(p,label) \ | | #define orc_x86_emit_jle(p,label) \ | |
| orc_x86_emit_cpuinsn_branch (p, ORC_X86_jle, label) | | orc_x86_emit_cpuinsn_branch (p, ORC_X86_jle, label) | |
| #define orc_x86_emit_je(p,label) \ | | #define orc_x86_emit_je(p,label) \ | |
| orc_x86_emit_cpuinsn_branch (p, ORC_X86_jz, label) | | orc_x86_emit_cpuinsn_branch (p, ORC_X86_jz, label) | |
| #define orc_x86_emit_jne(p,label) \ | | #define orc_x86_emit_jne(p,label) \ | |
| orc_x86_emit_cpuinsn_branch (p, ORC_X86_jnz, label) | | orc_x86_emit_cpuinsn_branch (p, ORC_X86_jnz, label) | |
| | | | |
|
| | | #define orc_x86_emit_align(p,align_shift) \ | |
| | | orc_x86_emit_cpuinsn_align (p, ORC_X86_ALIGN, align_shift) | |
| #define orc_x86_emit_label(p,label) \ | | #define orc_x86_emit_label(p,label) \ | |
| orc_x86_emit_cpuinsn_label (p, ORC_X86_LABEL, label) | | orc_x86_emit_cpuinsn_label (p, ORC_X86_LABEL, label) | |
| | | | |
| #define orc_x86_emit_emms(p) \ | | #define orc_x86_emit_emms(p) \ | |
| orc_x86_emit_cpuinsn_none (p, ORC_X86_emms) | | orc_x86_emit_cpuinsn_none (p, ORC_X86_emms) | |
| #define orc_x86_emit_rdtsc(p) \ | | #define orc_x86_emit_rdtsc(p) \ | |
| orc_x86_emit_cpuinsn_none (p, ORC_X86_rdtsc) | | orc_x86_emit_cpuinsn_none (p, ORC_X86_rdtsc) | |
| #define orc_x86_emit_ret(p) \ | | #define orc_x86_emit_ret(p) \ | |
| orc_x86_emit_cpuinsn_none (p, ((p)->is_64bit) ? ORC_X86_retq : ORC_X86_re
t) | | orc_x86_emit_cpuinsn_none (p, ((p)->is_64bit) ? ORC_X86_retq : ORC_X86_re
t) | |
| | | | |
| | | | |
| skipping to change at line 139 | | skipping to change at line 141 | |
| | | | |
| void orc_x86_emit_mov_memoffset_reg (OrcCompiler *compiler, int size, int o
ffset, int reg1, int reg2); | | void orc_x86_emit_mov_memoffset_reg (OrcCompiler *compiler, int size, int o
ffset, int reg1, int reg2); | |
| void orc_x86_emit_mov_reg_memoffset (OrcCompiler *compiler, int size, int r
eg1, int offset, int reg2); | | void orc_x86_emit_mov_reg_memoffset (OrcCompiler *compiler, int size, int r
eg1, int offset, int reg2); | |
| void orc_x86_emit_dec_memoffset (OrcCompiler *compiler, int size, int offse
t, int reg); | | void orc_x86_emit_dec_memoffset (OrcCompiler *compiler, int size, int offse
t, int reg); | |
| void orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value,
int reg, orc_bool record); | | void orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value,
int reg, orc_bool record); | |
| void orc_x86_emit_add_reg_reg_shift (OrcCompiler *compiler, int size, int r
eg1, int reg2, int shift); | | void orc_x86_emit_add_reg_reg_shift (OrcCompiler *compiler, int size, int r
eg1, int reg2, int shift); | |
| void orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, | | void orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, | |
| int offset, int reg); | | int offset, int reg); | |
| void orc_x86_emit_cmp_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | | void orc_x86_emit_cmp_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | |
| void orc_x86_emit_rep_movs (OrcCompiler *compiler, int size); | | void orc_x86_emit_rep_movs (OrcCompiler *compiler, int size); | |
|
| void orc_x86_emit_align (OrcCompiler *compiler); | | | |
| void orc_x86_emit_prologue (OrcCompiler *compiler); | | void orc_x86_emit_prologue (OrcCompiler *compiler); | |
| void orc_x86_emit_epilogue (OrcCompiler *compiler); | | void orc_x86_emit_epilogue (OrcCompiler *compiler); | |
| | | | |
| void orc_x86_emit_rex (OrcCompiler *compiler, int size, int reg1, int reg2,
int reg3); | | void orc_x86_emit_rex (OrcCompiler *compiler, int size, int reg1, int reg2,
int reg3); | |
| void orc_x86_emit_modrm_memoffset_old (OrcCompiler *compiler, int reg1, int
offset, int reg2); | | void orc_x86_emit_modrm_memoffset_old (OrcCompiler *compiler, int reg1, int
offset, int reg2); | |
| void orc_x86_emit_modrm_memoffset (OrcCompiler *compiler, int offset, int r
eg1, int reg2); | | void orc_x86_emit_modrm_memoffset (OrcCompiler *compiler, int offset, int r
eg1, int reg2); | |
| void orc_x86_emit_modrm_reg (OrcCompiler *compiler, int reg1, int reg2); | | void orc_x86_emit_modrm_reg (OrcCompiler *compiler, int reg1, int reg2); | |
| void orc_x86_emit_modrm_memindex (OrcCompiler *compiler, int reg1, int offs
et, | | void orc_x86_emit_modrm_memindex (OrcCompiler *compiler, int reg1, int offs
et, | |
| int reg2, int regindex, int shift); | | int reg2, int regindex, int shift); | |
| void orc_x86_emit_modrm_memindex2 (OrcCompiler *compiler, int offset, | | void orc_x86_emit_modrm_memindex2 (OrcCompiler *compiler, int offset, | |
| int src, int src_index, int shift, int dest); | | int src, int src_index, int shift, int dest); | |
| | | | |
| void x86_add_fixup (OrcCompiler *compiler, unsigned char *ptr, int label, i
nt type); | | void x86_add_fixup (OrcCompiler *compiler, unsigned char *ptr, int label, i
nt type); | |
| void x86_add_label (OrcCompiler *compiler, unsigned char *ptr, int label); | | void x86_add_label (OrcCompiler *compiler, unsigned char *ptr, int label); | |
|
| | | void x86_add_label2 (OrcCompiler *compiler, int index, int label); | |
| void orc_x86_do_fixups (OrcCompiler *compiler); | | void orc_x86_do_fixups (OrcCompiler *compiler); | |
| | | | |
| int orc_x86_assemble_copy_check (OrcCompiler *compiler); | | int orc_x86_assemble_copy_check (OrcCompiler *compiler); | |
| void orc_x86_assemble_copy (OrcCompiler *compiler); | | void orc_x86_assemble_copy (OrcCompiler *compiler); | |
| | | | |
|
| void orc_x86_emit_cpuinsn (OrcCompiler *p, int opcode, int src, int dest, | | void orc_x86_emit_cpuinsn_size (OrcCompiler *p, int opcode, int size, | |
| int imm); | | int src, int dest); | |
| | | void orc_x86_emit_cpuinsn_imm (OrcCompiler *p, int opcode, int imm, | |
| | | int src, int dest); | |
| void orc_x86_emit_cpuinsn_load_memoffset (OrcCompiler *p, int size, int ind
ex, | | void orc_x86_emit_cpuinsn_load_memoffset (OrcCompiler *p, int size, int ind
ex, | |
| int offset, int src, int dest, int imm); | | int offset, int src, int dest, int imm); | |
| void orc_x86_emit_cpuinsn_store_memoffset (OrcCompiler *p, int size, int in
dex, | | void orc_x86_emit_cpuinsn_store_memoffset (OrcCompiler *p, int size, int in
dex, | |
| int src, int offset, int dest, int imm); | | int src, int offset, int dest, int imm); | |
| void orc_x86_emit_cpuinsn_load_memindex (OrcCompiler *p, int index, int siz
e, | | void orc_x86_emit_cpuinsn_load_memindex (OrcCompiler *p, int index, int siz
e, | |
| int imm, int offset, int src, int src_index, int shift, int dest); | | int imm, int offset, int src, int src_index, int shift, int dest); | |
| void orc_x86_emit_cpuinsn_load_register (OrcCompiler *p, int index, int imm
, | | void orc_x86_emit_cpuinsn_load_register (OrcCompiler *p, int index, int imm
, | |
| int src, int dest); | | int src, int dest); | |
| void orc_x86_emit_cpuinsn_imm_reg (OrcCompiler *p, int index, int size, int
imm, | | void orc_x86_emit_cpuinsn_imm_reg (OrcCompiler *p, int index, int size, int
imm, | |
| int dest); | | int dest); | |
| void orc_x86_emit_cpuinsn_imm_memoffset (OrcCompiler *p, int index, int siz
e, | | void orc_x86_emit_cpuinsn_imm_memoffset (OrcCompiler *p, int index, int siz
e, | |
| int imm, int offset, int dest); | | int imm, int offset, int dest); | |
| void orc_x86_emit_cpuinsn_reg_memoffset (OrcCompiler *p, int index, int src
, | | void orc_x86_emit_cpuinsn_reg_memoffset (OrcCompiler *p, int index, int src
, | |
| int offset, int dest); | | int offset, int dest); | |
| void orc_x86_emit_cpuinsn_memoffset_reg (OrcCompiler *p, int index, int siz
e, | | void orc_x86_emit_cpuinsn_memoffset_reg (OrcCompiler *p, int index, int siz
e, | |
| int offset, int src, int dest); | | int offset, int src, int dest); | |
|
| | | void orc_x86_emit_cpuinsn_memoffset (OrcCompiler *p, int index, int size, | |
| | | int offset, int srcdest); | |
| void orc_x86_emit_cpuinsn_branch (OrcCompiler *p, int index, int label); | | void orc_x86_emit_cpuinsn_branch (OrcCompiler *p, int index, int label); | |
| void orc_x86_emit_cpuinsn_label (OrcCompiler *p, int index, int label); | | void orc_x86_emit_cpuinsn_label (OrcCompiler *p, int index, int label); | |
| void orc_x86_emit_cpuinsn_none (OrcCompiler *p, int index); | | void orc_x86_emit_cpuinsn_none (OrcCompiler *p, int index); | |
|
| | | void orc_x86_emit_cpuinsn_align (OrcCompiler *p, int index, int align_shift
); | |
| | | | |
| #endif | | #endif | |
| | | | |
| ORC_END_DECLS | | ORC_END_DECLS | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 10 change blocks. |
| 7 lines changed or deleted | | 14 lines changed or added | |
|
| orcx86insn.h | | orcx86insn.h | |
| | | | |
| #ifndef ORC_ORC_X86_INSN_H_ | | #ifndef ORC_ORC_X86_INSN_H_ | |
| #define ORC_ORC_X86_INSN_H_ | | #define ORC_ORC_X86_INSN_H_ | |
| | | | |
|
| | | #include <orc/orccpuinsn.h> | |
| | | | |
| ORC_BEGIN_DECLS | | ORC_BEGIN_DECLS | |
| | | | |
| #ifdef ORC_ENABLE_UNSTABLE_API | | #ifdef ORC_ENABLE_UNSTABLE_API | |
| | | | |
|
| enum { | | typedef enum { | |
| ORC_X86_INSN_TYPE_SD, | | ORC_X86_INSN_TYPE_MMXM_MMX, /* mem/mmx, mmx */ | |
| ORC_X86_INSN_TYPE_SHIFTIMM, | | ORC_X86_INSN_TYPE_IMM8_MMX_SHIFT, /* $shift, mmx. opcode in src */ | |
| ORC_X86_INSN_TYPE_SD2, | | ORC_X86_INSN_TYPE_SSEM_SSE, /* mem/mmx, sse */ | |
| ORC_X86_INSN_TYPE_SDI, | | ORC_X86_INSN_TYPE_IMM8_MMXM_MMX, | |
| ORC_X86_INSN_TYPE_SDI_REV, | | ORC_X86_INSN_TYPE_IMM8_MMX_REG_REV, | |
| ORC_X86_INSN_TYPE_SD_REV, | | ORC_X86_INSN_TYPE_MMXM_MMX_REV, | |
| ORC_X86_INSN_TYPE_ED, | | ORC_X86_INSN_TYPE_SSEM_SSE_REV, | |
| ORC_X86_INSN_TYPE_ED_REV, | | ORC_X86_INSN_TYPE_REGM_MMX, | |
| | | ORC_X86_INSN_TYPE_MMX_REGM_REV, | |
| | | ORC_X86_INSN_TYPE_REGM, | |
| ORC_X86_INSN_TYPE_MEM, | | ORC_X86_INSN_TYPE_MEM, | |
|
| ORC_X86_INSN_TYPE_imm8_rm, | | ORC_X86_INSN_TYPE_IMM8_REGM, | |
| ORC_X86_INSN_TYPE_imm32_rm, | | ORC_X86_INSN_TYPE_IMM32_REGM, | |
| ORC_X86_INSN_TYPE_rm_r, | | ORC_X86_INSN_TYPE_REGM_REG, | |
| ORC_X86_INSN_TYPE_r_rm, | | ORC_X86_INSN_TYPE_REG_REGM, | |
| ORC_X86_INSN_TYPE_LABEL, | | ORC_X86_INSN_TYPE_LABEL, | |
|
| | | ORC_X86_INSN_TYPE_ALIGN, | |
| | | ORC_X86_INSN_TYPE_BRANCH, | |
| ORC_X86_INSN_TYPE_NONE, | | ORC_X86_INSN_TYPE_NONE, | |
| ORC_X86_INSN_TYPE_STACK, | | ORC_X86_INSN_TYPE_STACK, | |
|
| ORC_X86_INSN_TYPE_mov_imm32, | | ORC_X86_INSN_TYPE_IMM32_REGM_MOV, | |
| ORC_X86_INSN_TYPE_r_rm_byte, | | ORC_X86_INSN_TYPE_REG8_REGM, | |
| ORC_X86_INSN_TYPE_r_rm_word, | | ORC_X86_INSN_TYPE_REG16_REGM, | |
| ORC_X86_INSN_TYPE_imm32_a, | | ORC_X86_INSN_TYPE_IMM32_A, | |
| ORC_X86_INSN_TYPE_EDI, | | ORC_X86_INSN_TYPE_IMM8_REGM_MMX, | |
| }; | | } OrcX86InsnType; | |
| | | | |
|
| enum { | | typedef enum { | |
| ORC_X86_punpcklbw, | | ORC_X86_punpcklbw, | |
| ORC_X86_punpcklwd, | | ORC_X86_punpcklwd, | |
| ORC_X86_punpckldq, | | ORC_X86_punpckldq, | |
| ORC_X86_packsswb, | | ORC_X86_packsswb, | |
| ORC_X86_pcmpgtb, | | ORC_X86_pcmpgtb, | |
| ORC_X86_pcmpgtw, | | ORC_X86_pcmpgtw, | |
| ORC_X86_pcmpgtd, | | ORC_X86_pcmpgtd, | |
| ORC_X86_packuswb, | | ORC_X86_packuswb, | |
| ORC_X86_punpckhbw, | | ORC_X86_punpckhbw, | |
| ORC_X86_punpckhwd, | | ORC_X86_punpckhwd, | |
| | | | |
| skipping to change at line 178 | | skipping to change at line 184 | |
| ORC_X86_psrlq_imm, | | ORC_X86_psrlq_imm, | |
| ORC_X86_psllq_imm, | | ORC_X86_psllq_imm, | |
| ORC_X86_psrldq_imm, | | ORC_X86_psrldq_imm, | |
| ORC_X86_pslldq_imm, | | ORC_X86_pslldq_imm, | |
| ORC_X86_pshufd, | | ORC_X86_pshufd, | |
| ORC_X86_pshuflw, | | ORC_X86_pshuflw, | |
| ORC_X86_pshufhw, | | ORC_X86_pshufhw, | |
| ORC_X86_palignr, | | ORC_X86_palignr, | |
| ORC_X86_pinsrw, | | ORC_X86_pinsrw, | |
| ORC_X86_movd_load, | | ORC_X86_movd_load, | |
|
| ORC_X86_movq_load, | | ORC_X86_movq_sse_load, | |
| ORC_X86_movdqa_load, | | ORC_X86_movdqa_load, | |
| ORC_X86_movdqu_load, | | ORC_X86_movdqu_load, | |
| ORC_X86_movhps_load, | | ORC_X86_movhps_load, | |
| ORC_X86_pextrw, | | ORC_X86_pextrw, | |
| ORC_X86_movd_store, | | ORC_X86_movd_store, | |
|
| ORC_X86_movq_store, | | ORC_X86_movq_sse_store, | |
| ORC_X86_movdqa_store, | | ORC_X86_movdqa_store, | |
| ORC_X86_movdqu_store, | | ORC_X86_movdqu_store, | |
| ORC_X86_movntdq_store, | | ORC_X86_movntdq_store, | |
| ORC_X86_ldmxcsr, | | ORC_X86_ldmxcsr, | |
| ORC_X86_stmxcsr, | | ORC_X86_stmxcsr, | |
| ORC_X86_add_imm8_rm, | | ORC_X86_add_imm8_rm, | |
| ORC_X86_add_imm32_rm, | | ORC_X86_add_imm32_rm, | |
| ORC_X86_add_rm_r, | | ORC_X86_add_rm_r, | |
| ORC_X86_add_r_rm, | | ORC_X86_add_r_rm, | |
| ORC_X86_or_imm8_rm, | | ORC_X86_or_imm8_rm, | |
| | | | |
| skipping to change at line 270 | | skipping to change at line 276 | |
| ORC_X86_test_imm, | | ORC_X86_test_imm, | |
| ORC_X86_leal, | | ORC_X86_leal, | |
| ORC_X86_leaq, | | ORC_X86_leaq, | |
| ORC_X86_imul_rm_r, | | ORC_X86_imul_rm_r, | |
| ORC_X86_imul_rm, | | ORC_X86_imul_rm, | |
| ORC_X86_inc, | | ORC_X86_inc, | |
| ORC_X86_dec, | | ORC_X86_dec, | |
| ORC_X86_sar_imm, | | ORC_X86_sar_imm, | |
| ORC_X86_sar, | | ORC_X86_sar, | |
| ORC_X86_and_imm32_a, | | ORC_X86_and_imm32_a, | |
|
| | | ORC_X86_ALIGN, | |
| | | ORC_X86_pshufw, | |
| | | ORC_X86_movq_mmx_load, | |
| | | ORC_X86_movq_mmx_store, | |
| | | } OrcX86Opcode; | |
| | | | |
|
| | | enum { | |
| | | ORC_X86_RM_REG, | |
| | | ORC_X86_RM_MEMOFFSET, | |
| | | ORC_X86_RM_MEMINDEX | |
| }; | | }; | |
| | | | |
|
| #define orc_sse_emit_punpcklbw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | typedef struct _OrcX86Insn OrcX86Insn; | |
| klbw, 0, a, b) | | struct _OrcX86Insn { | |
| #define orc_sse_emit_punpcklwd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | OrcX86Opcode opcode_index; | |
| klwd, 0, a, b) | | const OrcSysOpcode *opcode; | |
| #define orc_sse_emit_punpckldq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | int imm; | |
| kldq, 0, a, b) | | int src; | |
| #define orc_sse_emit_packsswb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_packss | | int dest; | |
| wb, 0, a, b) | | int size; | |
| #define orc_sse_emit_pcmpgtb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpgtb | | int label; | |
| , 0, a, b) | | int type; | |
| #define orc_sse_emit_pcmpgtw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpgtw | | int offset; | |
| , 0, a, b) | | int index_reg; | |
| #define orc_sse_emit_pcmpgtd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpgtd | | int shift; | |
| , 0, a, b) | | int code_offset; | |
| #define orc_sse_emit_packuswb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_packus | | }; | |
| wb, 0, a, b) | | | |
| #define orc_sse_emit_punpckhbw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | OrcX86Insn * orc_x86_get_output_insn (OrcCompiler *p); | |
| khbw, 0, a, b) | | void orc_x86_output_insns (OrcCompiler *p); | |
| #define orc_sse_emit_punpckhwd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | void orc_x86_calculate_offsets (OrcCompiler *p); | |
| khwd, 0, a, b) | | | |
| #define orc_sse_emit_punpckhdq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punpc | | #define orc_sse_emit_punpcklbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| khdq, 0, a, b) | | punpcklbw, 16, a, b) | |
| #define orc_sse_emit_packssdw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_packss | | #define orc_sse_emit_punpcklwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| dw, 0, a, b) | | punpcklwd, 16, a, b) | |
| #define orc_sse_emit_punpcklqdq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punp | | #define orc_sse_emit_punpckldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| cklqdq, 0, a, b) | | punpckldq, 16, a, b) | |
| #define orc_sse_emit_punpckhqdq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_punp | | #define orc_sse_emit_packsswb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| ckhqdq, 0, a, b) | | acksswb, 16, a, b) | |
| #define orc_sse_emit_movdqa(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_movdqa, | | #define orc_sse_emit_pcmpgtb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| 0, a, b) | | mpgtb, 16, a, b) | |
| #define orc_sse_emit_psraw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psraw, 0, | | #define orc_sse_emit_pcmpgtw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| a, b) | | mpgtw, 16, a, b) | |
| #define orc_sse_emit_psrlw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrlw, 0, | | #define orc_sse_emit_pcmpgtd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| a, b) | | mpgtd, 16, a, b) | |
| #define orc_sse_emit_psllw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psllw, 0, | | #define orc_sse_emit_packuswb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| a, b) | | ackuswb, 16, a, b) | |
| #define orc_sse_emit_psrad(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrad, 0, | | #define orc_sse_emit_punpckhbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| a, b) | | punpckhbw, 16, a, b) | |
| #define orc_sse_emit_psrld(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrld, 0, | | #define orc_sse_emit_punpckhwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| a, b) | | punpckhwd, 16, a, b) | |
| #define orc_sse_emit_pslld(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pslld, 0, | | #define orc_sse_emit_punpckhdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| a, b) | | punpckhdq, 16, a, b) | |
| #define orc_sse_emit_psrlq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrlq, 0, | | #define orc_sse_emit_packssdw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| a, b) | | ackssdw, 16, a, b) | |
| #define orc_sse_emit_psllq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psllq, 0, | | #define orc_sse_emit_punpcklqdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| a, b) | | _punpcklqdq, 16, a, b) | |
| #define orc_sse_emit_psrldq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrldq, | | #define orc_sse_emit_punpckhqdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| 0, a, b) | | _punpckhqdq, 16, a, b) | |
| #define orc_sse_emit_pslldq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pslldq, | | #define orc_sse_emit_movdqa(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mov | |
| 0, a, b) | | dqa, 16, a, b) | |
| #define orc_sse_emit_psrlq_reg(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psrlq | | #define orc_sse_emit_psraw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psra | |
| _reg, 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_pcmpeqb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpeqb | | #define orc_sse_emit_psrlw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| , 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_pcmpeqw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpeqw | | #define orc_sse_emit_psllw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| , 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_pcmpeqd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpeqd | | #define orc_sse_emit_psrad(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psra | |
| , 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_paddq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddq, 0, | | #define orc_sse_emit_psrld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_pmullw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmullw, | | #define orc_sse_emit_pslld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_psubusb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubusb | | #define orc_sse_emit_psrlq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| , 0, a, b) | | q, 16, a, b) | |
| #define orc_sse_emit_psubusw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubusw | | #define orc_sse_emit_psllq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| , 0, a, b) | | q, 16, a, b) | |
| #define orc_sse_emit_pminub(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminub, | | #define orc_sse_emit_psrldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psr | |
| 0, a, b) | | ldq, 16, a, b) | |
| #define orc_sse_emit_pand(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pand, 0, a | | #define orc_sse_emit_pslldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psl | |
| , b) | | ldq, 16, a, b) | |
| #define orc_sse_emit_paddusb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddusb | | #define orc_sse_emit_psrlq_reg(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| , 0, a, b) | | psrlq_reg, 16, a, b) | |
| #define orc_sse_emit_paddusw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddusw | | #define orc_sse_emit_pcmpeqb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| , 0, a, b) | | mpeqb, 16, a, b) | |
| #define orc_sse_emit_pmaxub(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxub, | | #define orc_sse_emit_pcmpeqw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| 0, a, b) | | mpeqw, 16, a, b) | |
| #define orc_sse_emit_pandn(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pandn, 0, | | #define orc_sse_emit_pcmpeqd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| a, b) | | mpeqd, 16, a, b) | |
| #define orc_sse_emit_pavgb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pavgb, 0, | | #define orc_sse_emit_paddq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| a, b) | | q, 16, a, b) | |
| #define orc_sse_emit_pavgw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pavgw, 0, | | #define orc_sse_emit_pmullw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| a, b) | | llw, 16, a, b) | |
| #define orc_sse_emit_pmulhuw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmulhuw | | #define orc_sse_emit_psubusb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ps | |
| , 0, a, b) | | ubusb, 16, a, b) | |
| #define orc_sse_emit_pmulhw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmulhw, | | #define orc_sse_emit_psubusw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ps | |
| 0, a, b) | | ubusw, 16, a, b) | |
| #define orc_sse_emit_psubsb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubsb, | | #define orc_sse_emit_pminub(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| 0, a, b) | | nub, 16, a, b) | |
| #define orc_sse_emit_psubsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubsw, | | #define orc_sse_emit_pand(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pand, | |
| 0, a, b) | | 16, a, b) | |
| #define orc_sse_emit_pminsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminsw, | | #define orc_sse_emit_paddusb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pa | |
| 0, a, b) | | ddusb, 16, a, b) | |
| #define orc_sse_emit_por(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_por, 0, a, | | #define orc_sse_emit_paddusw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pa | |
| b) | | ddusw, 16, a, b) | |
| #define orc_sse_emit_paddsb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddsb, | | #define orc_sse_emit_pmaxub(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| 0, a, b) | | xub, 16, a, b) | |
| #define orc_sse_emit_paddsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddsw, | | #define orc_sse_emit_pandn(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pand | |
| 0, a, b) | | n, 16, a, b) | |
| #define orc_sse_emit_pmaxsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxsw, | | #define orc_sse_emit_pavgb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pavg | |
| 0, a, b) | | b, 16, a, b) | |
| #define orc_sse_emit_pxor(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pxor, 0, a | | #define orc_sse_emit_pavgw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pavg | |
| , b) | | w, 16, a, b) | |
| #define orc_sse_emit_pmuludq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmuludq | | #define orc_sse_emit_pmulhuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| , 0, a, b) | | ulhuw, 16, a, b) | |
| #define orc_sse_emit_pmaddwd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaddwd | | #define orc_sse_emit_pmulhw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| , 0, a, b) | | lhw, 16, a, b) | |
| #define orc_sse_emit_psadbw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psadbw, | | #define orc_sse_emit_psubsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psu | |
| 0, a, b) | | bsb, 16, a, b) | |
| #define orc_sse_emit_psubb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubb, 0, | | #define orc_sse_emit_psubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psu | |
| a, b) | | bsw, 16, a, b) | |
| #define orc_sse_emit_psubw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubw, 0, | | #define orc_sse_emit_pminsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| a, b) | | nsw, 16, a, b) | |
| #define orc_sse_emit_psubd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubd, 0, | | #define orc_sse_emit_por(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_por, 1 | |
| a, b) | | 6, a, b) | |
| #define orc_sse_emit_psubq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psubq, 0, | | #define orc_sse_emit_paddsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pad | |
| a, b) | | dsb, 16, a, b) | |
| #define orc_sse_emit_paddb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddb, 0, | | #define orc_sse_emit_paddsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pad | |
| a, b) | | dsw, 16, a, b) | |
| #define orc_sse_emit_paddw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddw, 0, | | #define orc_sse_emit_pmaxsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| a, b) | | xsw, 16, a, b) | |
| #define orc_sse_emit_paddd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_paddd, 0, | | #define orc_sse_emit_pxor(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pxor, | |
| a, b) | | 16, a, b) | |
| #define orc_sse_emit_pshufb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pshufb, | | #define orc_sse_emit_pmuludq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| 0, a, b) | | uludq, 16, a, b) | |
| #define orc_sse_emit_phaddw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phaddw, | | #define orc_sse_emit_pmaddwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| 0, a, b) | | addwd, 16, a, b) | |
| #define orc_sse_emit_phaddd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phaddd, | | #define orc_sse_emit_psadbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psa | |
| 0, a, b) | | dbw, 16, a, b) | |
| #define orc_sse_emit_phaddsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phaddsw | | #define orc_sse_emit_psubb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| , 0, a, b) | | b, 16, a, b) | |
| #define orc_sse_emit_pmaddubsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmadd | | #define orc_sse_emit_psubw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| ubsw, 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_phsubw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phsubw, | | #define orc_sse_emit_psubd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_phsubd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phsubd, | | #define orc_sse_emit_psubq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| 0, a, b) | | q, 16, a, b) | |
| #define orc_sse_emit_phsubsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phsubsw | | #define orc_sse_emit_paddb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| , 0, a, b) | | b, 16, a, b) | |
| #define orc_sse_emit_psignb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psignb, | | #define orc_sse_emit_paddw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_psignw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psignw, | | #define orc_sse_emit_paddd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_psignd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psignd, | | #define orc_sse_emit_pshufb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psh | |
| 0, a, b) | | ufb, 16, a, b) | |
| #define orc_sse_emit_pmulhrsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmulhr | | #define orc_sse_emit_phaddw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pha | |
| sw, 0, a, b) | | ddw, 16, a, b) | |
| #define orc_sse_emit_pabsb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pabsb, 0, | | #define orc_sse_emit_phaddd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pha | |
| a, b) | | ddd, 16, a, b) | |
| #define orc_sse_emit_pabsw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pabsw, 0, | | #define orc_sse_emit_phaddsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ph | |
| a, b) | | addsw, 16, a, b) | |
| #define orc_sse_emit_pabsd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pabsd, 0, | | #define orc_sse_emit_pmaddubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| a, b) | | pmaddubsw, 16, a, b) | |
| #define orc_sse_emit_pmovsxbw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_phsubw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_phs | |
| bw, 0, a, b) | | ubw, 16, a, b) | |
| #define orc_sse_emit_pmovsxbd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_phsubd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_phs | |
| bd, 0, a, b) | | ubd, 16, a, b) | |
| #define orc_sse_emit_pmovsxbq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_phsubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ph | |
| bq, 0, a, b) | | subsw, 16, a, b) | |
| #define orc_sse_emit_pmovsxwd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_psignb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| wd, 0, a, b) | | gnb, 16, a, b) | |
| #define orc_sse_emit_pmovsxwq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_psignw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| wq, 0, a, b) | | gnw, 16, a, b) | |
| #define orc_sse_emit_pmovsxdq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovsx | | #define orc_sse_emit_psignd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| dq, 0, a, b) | | gnd, 16, a, b) | |
| #define orc_sse_emit_pmuldq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmuldq, | | #define orc_sse_emit_pmulhrsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | mulhrsw, 16, a, b) | |
| #define orc_sse_emit_pcmpeqq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpeqq | | #define orc_sse_emit_pabsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| , 0, a, b) | | b, 16, a, b) | |
| #define orc_sse_emit_packusdw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_packus | | #define orc_sse_emit_pabsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| dw, 0, a, b) | | w, 16, a, b) | |
| #define orc_sse_emit_pmovzxbw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pabsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| bw, 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_pmovzxbd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pmovsxbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| bd, 0, a, b) | | movsxbw, 16, a, b) | |
| #define orc_sse_emit_pmovzxbq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pmovsxbd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| bq, 0, a, b) | | movsxbd, 16, a, b) | |
| #define orc_sse_emit_pmovzxwd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pmovsxbq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| wd, 0, a, b) | | movsxbq, 16, a, b) | |
| #define orc_sse_emit_pmovzxwq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pmovsxwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| wq, 0, a, b) | | movsxwd, 16, a, b) | |
| #define orc_sse_emit_pmovzxdq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmovzx | | #define orc_sse_emit_pmovsxwq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| dq, 0, a, b) | | movsxwq, 16, a, b) | |
| #define orc_sse_emit_pmulld(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmulld, | | #define orc_sse_emit_pmovsxdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movsxdq, 16, a, b) | |
| #define orc_sse_emit_phminposuw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_phmi | | #define orc_sse_emit_pmuldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| nposuw, 0, a, b) | | ldq, 16, a, b) | |
| #define orc_sse_emit_pminsb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminsb, | | #define orc_sse_emit_pcmpeqq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| 0, a, b) | | mpeqq, 16, a, b) | |
| #define orc_sse_emit_pminsd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminsd, | | #define orc_sse_emit_packusdw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | ackusdw, 16, a, b) | |
| #define orc_sse_emit_pminuw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminuw, | | #define orc_sse_emit_pmovzxbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxbw, 16, a, b) | |
| #define orc_sse_emit_pminud(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pminud, | | #define orc_sse_emit_pmovzxbd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxbd, 16, a, b) | |
| #define orc_sse_emit_pmaxsb(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxsb, | | #define orc_sse_emit_pmovzxbq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxbq, 16, a, b) | |
| #define orc_sse_emit_pmaxsd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxsd, | | #define orc_sse_emit_pmovzxwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxwd, 16, a, b) | |
| #define orc_sse_emit_pmaxuw(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxuw, | | #define orc_sse_emit_pmovzxwq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxwq, 16, a, b) | |
| #define orc_sse_emit_pmaxud(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pmaxud, | | #define orc_sse_emit_pmovzxdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| 0, a, b) | | movzxdq, 16, a, b) | |
| #define orc_sse_emit_pcmpgtq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pcmpgtq | | #define orc_sse_emit_pmulld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| , 0, a, b) | | lld, 16, a, b) | |
| #define orc_sse_emit_addps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_addps, 0, | | #define orc_sse_emit_phminposuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| a, b) | | _phminposuw, 16, a, b) | |
| #define orc_sse_emit_subps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_subps, 0, | | #define orc_sse_emit_pminsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| a, b) | | nsb, 16, a, b) | |
| #define orc_sse_emit_mulps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_mulps, 0, | | #define orc_sse_emit_pminsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| a, b) | | nsd, 16, a, b) | |
| #define orc_sse_emit_divps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_divps, 0, | | #define orc_sse_emit_pminuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| a, b) | | nuw, 16, a, b) | |
| #define orc_sse_emit_sqrtps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_sqrtps, | | #define orc_sse_emit_pminud(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| 0, a, b) | | nud, 16, a, b) | |
| #define orc_sse_emit_addpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_addpd, 0, | | #define orc_sse_emit_pmaxsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| a, b) | | xsb, 16, a, b) | |
| #define orc_sse_emit_subpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_subpd, 0, | | #define orc_sse_emit_pmaxsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| a, b) | | xsd, 16, a, b) | |
| #define orc_sse_emit_mulpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_mulpd, 0, | | #define orc_sse_emit_pmaxuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| a, b) | | xuw, 16, a, b) | |
| #define orc_sse_emit_divpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_divpd, 0, | | #define orc_sse_emit_pmaxud(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| a, b) | | xud, 16, a, b) | |
| #define orc_sse_emit_sqrtpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_sqrtpd, | | #define orc_sse_emit_pcmpgtq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| 0, a, b) | | mpgtq, 16, a, b) | |
| #define orc_sse_emit_cmpeqps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmpeqps | | #define orc_sse_emit_addps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_addp | |
| , 0, a, b) | | s, 16, a, b) | |
| #define orc_sse_emit_cmpeqpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmpeqpd | | #define orc_sse_emit_subps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_subp | |
| , 0, a, b) | | s, 16, a, b) | |
| #define orc_sse_emit_cmpltps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmpltps | | #define orc_sse_emit_mulps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mulp | |
| , 0, a, b) | | s, 16, a, b) | |
| #define orc_sse_emit_cmpltpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmpltpd | | #define orc_sse_emit_divps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_divp | |
| , 0, a, b) | | s, 16, a, b) | |
| #define orc_sse_emit_cmpleps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmpleps | | #define orc_sse_emit_sqrtps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_sqr | |
| , 0, a, b) | | tps, 16, a, b) | |
| #define orc_sse_emit_cmplepd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cmplepd | | #define orc_sse_emit_addpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_addp | |
| , 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_cvttps2dq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvttp | | #define orc_sse_emit_subpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_subp | |
| s2dq, 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_cvttpd2dq(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvttp | | #define orc_sse_emit_mulpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mulp | |
| d2dq, 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_cvtdq2ps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvtdq2 | | #define orc_sse_emit_divpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_divp | |
| ps, 0, a, b) | | d, 16, a, b) | |
| #define orc_sse_emit_cvtdq2pd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvtdq2 | | #define orc_sse_emit_sqrtpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_sqr | |
| pd, 0, a, b) | | tpd, 16, a, b) | |
| #define orc_sse_emit_cvtps2pd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvtps2 | | #define orc_sse_emit_cmpeqps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| pd, 0, a, b) | | peqps, 16, a, b) | |
| #define orc_sse_emit_cvtpd2ps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_cvtpd2 | | #define orc_sse_emit_cmpeqpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| ps, 0, a, b) | | peqpd, 16, a, b) | |
| #define orc_sse_emit_minps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_minps, 0, | | #define orc_sse_emit_cmpltps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| a, b) | | pltps, 16, a, b) | |
| #define orc_sse_emit_minpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_minpd, 0, | | #define orc_sse_emit_cmpltpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| a, b) | | pltpd, 16, a, b) | |
| #define orc_sse_emit_maxps(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_maxps, 0, | | #define orc_sse_emit_cmpleps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| a, b) | | pleps, 16, a, b) | |
| #define orc_sse_emit_maxpd(p,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_maxpd, 0, | | #define orc_sse_emit_cmplepd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| a, b) | | plepd, 16, a, b) | |
| #define orc_sse_emit_psraw_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psr | | #define orc_sse_emit_cvttps2dq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| aw_imm, imm, 0, b) | | cvttps2dq, 16, a, b) | |
| #define orc_sse_emit_psrlw_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psr | | #define orc_sse_emit_cvttpd2dq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| lw_imm, imm, 0, b) | | cvttpd2dq, 16, a, b) | |
| #define orc_sse_emit_psllw_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psl | | #define orc_sse_emit_cvtdq2ps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| lw_imm, imm, 0, b) | | vtdq2ps, 16, a, b) | |
| #define orc_sse_emit_psrad_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psr | | #define orc_sse_emit_cvtdq2pd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| ad_imm, imm, 0, b) | | vtdq2pd, 16, a, b) | |
| #define orc_sse_emit_psrld_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psr | | #define orc_sse_emit_cvtps2pd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| ld_imm, imm, 0, b) | | vtps2pd, 16, a, b) | |
| #define orc_sse_emit_pslld_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psl | | #define orc_sse_emit_cvtpd2ps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| ld_imm, imm, 0, b) | | vtpd2ps, 16, a, b) | |
| #define orc_sse_emit_psrlq_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psr | | #define orc_sse_emit_minps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_minp | |
| lq_imm, imm, 0, b) | | s, 16, a, b) | |
| #define orc_sse_emit_psllq_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_psl | | #define orc_sse_emit_minpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_minp | |
| lq_imm, imm, 0, b) | | d, 16, a, b) | |
| #define orc_sse_emit_psrldq_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_ps | | #define orc_sse_emit_maxps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_maxp | |
| rldq_imm, imm, 0, b) | | s, 16, a, b) | |
| #define orc_sse_emit_pslldq_imm(p,imm,b) orc_x86_emit_cpuinsn(p, ORC_X86_ps | | #define orc_sse_emit_maxpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_maxp | |
| lldq_imm, imm, 0, b) | | d, 16, a, b) | |
| #define orc_sse_emit_pshufd(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_pshu | | #define orc_sse_emit_psraw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| fd, imm, a, b) | | _psraw_imm, imm, 0, b) | |
| #define orc_sse_emit_pshuflw(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psh | | #define orc_sse_emit_psrlw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| uflw, imm, a, b) | | _psrlw_imm, imm, 0, b) | |
| #define orc_sse_emit_pshufhw(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psh | | #define orc_sse_emit_psllw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| ufhw, imm, a, b) | | _psllw_imm, imm, 0, b) | |
| #define orc_sse_emit_palignr(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_psa | | #define orc_sse_emit_psrad_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| lignr, imm, a, b) | | _psrad_imm, imm, 0, b) | |
| #define orc_sse_emit_movdqu(p,offset,a,b) orc_x86_emit_cpuinsn(p, ORC_X86_m | | #define orc_sse_emit_psrld_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| ovdqu_load, 0, a, b) | | _psrld_imm, imm, 0, b) | |
| | | #define orc_sse_emit_pslld_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pslld_imm, imm, 0, b) | |
| | | #define orc_sse_emit_psrlq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psrlq_imm, imm, 0, b) | |
| | | #define orc_sse_emit_psllq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psllq_imm, imm, 0, b) | |
| | | #define orc_sse_emit_psrldq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X8 | |
| | | 6_psrldq_imm, imm, 0, b) | |
| | | #define orc_sse_emit_pslldq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X8 | |
| | | 6_pslldq_imm, imm, 0, b) | |
| | | #define orc_sse_emit_pshufd(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86_ | |
| | | pshufd, imm, a, b) | |
| | | #define orc_sse_emit_pshuflw(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pshuflw, imm, a, b) | |
| | | #define orc_sse_emit_pshufhw(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pshufhw, imm, a, b) | |
| | | #define orc_sse_emit_palignr(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psalignr, imm, a, b) | |
| | | #define orc_sse_emit_movdqu(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mov | |
| | | dqu_load, 16, a, b) | |
| | | | |
| #define orc_sse_emit_pinsrw_memoffset(p,imm,offset,a,b) orc_x86_emit_cpuins
n_load_memoffset(p, ORC_X86_pinsrw, 4, imm, offset, a, b) | | #define orc_sse_emit_pinsrw_memoffset(p,imm,offset,a,b) orc_x86_emit_cpuins
n_load_memoffset(p, ORC_X86_pinsrw, 4, imm, offset, a, b) | |
| #define orc_sse_emit_movd_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn
_load_memoffset(p, ORC_X86_movd_load, 4, 0, offset, a, b) | | #define orc_sse_emit_movd_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn
_load_memoffset(p, ORC_X86_movd_load, 4, 0, offset, a, b) | |
|
| #define orc_sse_emit_movq_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn
_load_memoffset(p, ORC_X86_movq_load, 4, 0, offset, a, b) | | #define orc_sse_emit_movq_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn
_load_memoffset(p, ORC_X86_movq_sse_load, 4, 0, offset, a, b) | |
| #define orc_sse_emit_movdqa_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movdqa_load, 4, 0, offset, a, b) | | #define orc_sse_emit_movdqa_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movdqa_load, 4, 0, offset, a, b) | |
| #define orc_sse_emit_movdqu_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movdqu_load, 4, 0, offset, a, b) | | #define orc_sse_emit_movdqu_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movdqu_load, 4, 0, offset, a, b) | |
| #define orc_sse_emit_movhps_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movhps_load, 4, 0, offset, a, b) | | #define orc_sse_emit_movhps_load_memoffset(p,offset,a,b) orc_x86_emit_cpuin
sn_load_memoffset(p, ORC_X86_movhps_load, 4, 0, offset, a, b) | |
| | | | |
| #define orc_sse_emit_pextrw_memoffset(p,imm,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_pextrw, 16, imm, a, offset, b) | | #define orc_sse_emit_pextrw_memoffset(p,imm,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_pextrw, 16, imm, a, offset, b) | |
| #define orc_sse_emit_movd_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_movd_store, 16, 0, a, offset, b) | | #define orc_sse_emit_movd_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_movd_store, 16, 0, a, offset, b) | |
|
| #define orc_sse_emit_movq_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_movq_store, 16, 0, a, offset, b) | | #define orc_sse_emit_movq_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins
n_store_memoffset(p, ORC_X86_movq_sse_store, 16, 0, a, offset, b) | |
| #define orc_sse_emit_movdqa_store_memoffset(p,a,offset,b) orc_x86_emit_cpui
nsn_store_memoffset(p, ORC_X86_movdqa_store, 16, 0, a, offset, b) | | #define orc_sse_emit_movdqa_store_memoffset(p,a,offset,b) orc_x86_emit_cpui
nsn_store_memoffset(p, ORC_X86_movdqa_store, 16, 0, a, offset, b) | |
| #define orc_sse_emit_movdqu_store_memoffset(p,a,offset,b) orc_x86_emit_cpui
nsn_store_memoffset(p, ORC_X86_movdqu_store, 16, 0, a, offset, b) | | #define orc_sse_emit_movdqu_store_memoffset(p,a,offset,b) orc_x86_emit_cpui
nsn_store_memoffset(p, ORC_X86_movdqu_store, 16, 0, a, offset, b) | |
| #define orc_sse_emit_movntdq_store_memoffset(p,a,offset,b) orc_x86_emit_cpu
insn_store_memoffset(p, ORC_X86_movntdq_store, 16, 0, a, offset, b) | | #define orc_sse_emit_movntdq_store_memoffset(p,a,offset,b) orc_x86_emit_cpu
insn_store_memoffset(p, ORC_X86_movntdq_store, 16, 0, a, offset, b) | |
| | | | |
| #define orc_sse_emit_pinsrw_memindex(p,imm,offset,a,a_index,shift,b) orc_x8
6_emit_cpuinsn_load_memindex(p, ORC_X86_pinsrw, 4, imm, offset, a, a_index,
shift, b) | | #define orc_sse_emit_pinsrw_memindex(p,imm,offset,a,a_index,shift,b) orc_x8
6_emit_cpuinsn_load_memindex(p, ORC_X86_pinsrw, 4, imm, offset, a, a_index,
shift, b) | |
| #define orc_sse_emit_movd_load_memindex(p,offset,a,a_index,shift,b) orc_x86
_emit_cpuinsn_load_memindex(p, ORC_X86_movd_load, 4, 0, offset, a, a_index,
shift, b) | | #define orc_sse_emit_movd_load_memindex(p,offset,a,a_index,shift,b) orc_x86
_emit_cpuinsn_load_memindex(p, ORC_X86_movd_load, 4, 0, offset, a, a_index,
shift, b) | |
|
| #define orc_sse_emit_movq_load_memindex(p,offset,a,a_index,shift,b) orc_x86
_emit_cpuinsn_load_memindex(p, ORC_X86_movq_load, 4, 0, offset, a, a_index,
shift, b) | | #define orc_sse_emit_movq_load_memindex(p,offset,a,a_index,shift,b) orc_x86
_emit_cpuinsn_load_memindex(p, ORC_X86_movq_sse_load, 4, 0, offset, a, a_in
dex, shift, b) | |
| #define orc_sse_emit_movdqa_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movdqa_load, 4, 0, offset, a, a_in
dex, shift, b) | | #define orc_sse_emit_movdqa_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movdqa_load, 4, 0, offset, a, a_in
dex, shift, b) | |
| #define orc_sse_emit_movdqu_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movdqu_load, 4, 0, offset, a, a_in
dex, shift, b) | | #define orc_sse_emit_movdqu_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movdqu_load, 4, 0, offset, a, a_in
dex, shift, b) | |
| #define orc_sse_emit_movhps_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movhps_load, 4, 0, offset, a, a_in
dex, shift, b) | | #define orc_sse_emit_movhps_load_memindex(p,offset,a,a_index,shift,b) orc_x
86_emit_cpuinsn_load_memindex(p, ORC_X86_movhps_load, 4, 0, offset, a, a_in
dex, shift, b) | |
| | | | |
| #define orc_sse_emit_pextrw_memindex(p,imm,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_pextrw, imm, a, offset, b, b_index
, shift) | | #define orc_sse_emit_pextrw_memindex(p,imm,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_pextrw, imm, a, offset, b, b_index
, shift) | |
| #define orc_sse_emit_movd_store_memindex(p,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_movd_store, 0, a, offset, b, b_ind
ex, shift) | | #define orc_sse_emit_movd_store_memindex(p,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_movd_store, 0, a, offset, b, b_ind
ex, shift) | |
|
| #define orc_sse_emit_movq_store_memindex(p,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_movq_store, 0, a, offset, b, b_ind
ex, shift) | | #define orc_sse_emit_movq_store_memindex(p,a,offset,b,b_index,shift) orc_x8
6_emit_cpuinsn_store_memindex(p, ORC_X86_movq_sse_store, 0, a, offset, b, b
_index, shift) | |
| #define orc_sse_emit_movdqa_store_memindex(p,a,offset,b,b_index,shift) orc_
x86_emit_cpuinsn_store_memindex(p, ORC_X86_movdqa_store, 0, a, offset, b, b
_index, shift) | | #define orc_sse_emit_movdqa_store_memindex(p,a,offset,b,b_index,shift) orc_
x86_emit_cpuinsn_store_memindex(p, ORC_X86_movdqa_store, 0, a, offset, b, b
_index, shift) | |
| #define orc_sse_emit_movdqu_store_memindex(p,a,offset,b,b_index,shift) orc_
x86_emit_cpuinsn_store_memindex(p, ORC_X86_movdqu_store, 0, a, offset, b, b
_index, shift) | | #define orc_sse_emit_movdqu_store_memindex(p,a,offset,b,b_index,shift) orc_
x86_emit_cpuinsn_store_memindex(p, ORC_X86_movdqu_store, 0, a, offset, b, b
_index, shift) | |
| #define orc_sse_emit_movntdq_store_memindex(p,a,offset,b,b_index,shift) orc
_x86_emit_cpuinsn_store_memindex(p, ORC_X86_movntdq_store, 0, a, offset, b,
b_index, shift) | | #define orc_sse_emit_movntdq_store_memindex(p,a,offset,b,b_index,shift) orc
_x86_emit_cpuinsn_store_memindex(p, ORC_X86_movntdq_store, 0, a, offset, b,
b_index, shift) | |
| | | | |
|
| #define orc_sse_emit_pinsrw_register(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC | | #define orc_sse_emit_pinsrw_register(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, | |
| _X86_pinsrw, imm, a, b) | | ORC_X86_pinsrw, imm, a, b) | |
| #define orc_sse_emit_movd_load_register(p,a,b) orc_x86_emit_cpuinsn(p, ORC_ | | #define orc_sse_emit_movd_load_register(p,a,b) orc_x86_emit_cpuinsn_size(p, | |
| X86_movd_load, 0, a, b) | | ORC_X86_movd_load, 4, a, b) | |
| #define orc_sse_emit_movq_load_register(p,a,b) orc_x86_emit_cpuinsn(p, ORC_ | | #define orc_sse_emit_movq_load_register(p,a,b) orc_x86_emit_cpuinsn_size(p, | |
| X86_movq_load, 0, a, b) | | ORC_X86_movq_sse_load, 4, a, b) | |
| | | | |
|
| #define orc_sse_emit_pextrw_register(p,imm,a,b) orc_x86_emit_cpuinsn(p, ORC | | #define orc_sse_emit_pextrw_register(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, | |
| _X86_pextrw, imm, a, b) | | ORC_X86_pextrw, imm, a, b) | |
| #define orc_sse_emit_movd_store_register(p,a,b) orc_x86_emit_cpuinsn(p, ORC | | #define orc_sse_emit_movd_store_register(p,a,b) orc_x86_emit_cpuinsn_size(p | |
| _X86_movd_store, 0, a, b) | | , ORC_X86_movd_store, 4, a, b) | |
| #define orc_sse_emit_movq_store_register(p,a,b) orc_x86_emit_cpuinsn(p, ORC | | #define orc_sse_emit_movq_store_register(p,a,b) orc_x86_emit_cpuinsn_size(p | |
| _X86_movq_store, 0, a, b) | | , ORC_X86_movq_sse_store, 4, a, b) | |
| | | | |
| | | #define orc_mmx_emit_punpcklbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpcklbw, 8, a, b) | |
| | | #define orc_mmx_emit_punpcklwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpcklwd, 8, a, b) | |
| | | #define orc_mmx_emit_punpckldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpckldq, 8, a, b) | |
| | | #define orc_mmx_emit_packsswb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | acksswb, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpgtb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpgtb, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpgtw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpgtw, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpgtd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpgtd, 8, a, b) | |
| | | #define orc_mmx_emit_packuswb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | ackuswb, 8, a, b) | |
| | | #define orc_mmx_emit_punpckhbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpckhbw, 8, a, b) | |
| | | #define orc_mmx_emit_punpckhwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpckhwd, 8, a, b) | |
| | | #define orc_mmx_emit_punpckhdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | punpckhdq, 8, a, b) | |
| | | #define orc_mmx_emit_packssdw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | ackssdw, 8, a, b) | |
| | | #define orc_mmx_emit_punpcklqdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| | | _punpcklqdq, 8, a, b) | |
| | | #define orc_mmx_emit_punpckhqdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| | | _punpckhqdq, 8, a, b) | |
| | | #define orc_mmx_emit_psraw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psra | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_psrlw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_psllw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_psrad(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psra | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_psrld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_pslld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_psrlq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psrl | |
| | | q, 8, a, b) | |
| | | #define orc_mmx_emit_psllq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psll | |
| | | q, 8, a, b) | |
| | | #define orc_mmx_emit_psrldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psr | |
| | | ldq, 8, a, b) | |
| | | #define orc_mmx_emit_pslldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psl | |
| | | ldq, 8, a, b) | |
| | | #define orc_mmx_emit_psrlq_reg(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | psrlq_reg, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpeqb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpeqb, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpeqw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpeqw, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpeqd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpeqd, 8, a, b) | |
| | | #define orc_mmx_emit_paddq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| | | q, 8, a, b) | |
| | | #define orc_mmx_emit_pmullw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| | | llw, 8, a, b) | |
| | | #define orc_mmx_emit_psubusb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ps | |
| | | ubusb, 8, a, b) | |
| | | #define orc_mmx_emit_psubusw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ps | |
| | | ubusw, 8, a, b) | |
| | | #define orc_mmx_emit_pminub(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nub, 8, a, b) | |
| | | #define orc_mmx_emit_pand(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pand, | |
| | | 8, a, b) | |
| | | #define orc_mmx_emit_paddusb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pa | |
| | | ddusb, 8, a, b) | |
| | | #define orc_mmx_emit_paddusw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pa | |
| | | ddusw, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxub(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xub, 8, a, b) | |
| | | #define orc_mmx_emit_pandn(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pand | |
| | | n, 8, a, b) | |
| | | #define orc_mmx_emit_pavgb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pavg | |
| | | b, 8, a, b) | |
| | | #define orc_mmx_emit_pavgw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pavg | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_pmulhuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| | | ulhuw, 8, a, b) | |
| | | #define orc_mmx_emit_pmulhw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| | | lhw, 8, a, b) | |
| | | #define orc_mmx_emit_psubsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psu | |
| | | bsb, 8, a, b) | |
| | | #define orc_mmx_emit_psubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psu | |
| | | bsw, 8, a, b) | |
| | | #define orc_mmx_emit_pminsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nsw, 8, a, b) | |
| | | #define orc_mmx_emit_por(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_por, 8 | |
| | | , a, b) | |
| | | #define orc_mmx_emit_paddsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pad | |
| | | dsb, 8, a, b) | |
| | | #define orc_mmx_emit_paddsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pad | |
| | | dsw, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xsw, 8, a, b) | |
| | | #define orc_mmx_emit_pxor(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pxor, | |
| | | 8, a, b) | |
| | | #define orc_mmx_emit_pmuludq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| | | uludq, 8, a, b) | |
| | | #define orc_mmx_emit_pmaddwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pm | |
| | | addwd, 8, a, b) | |
| | | #define orc_mmx_emit_psadbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psa | |
| | | dbw, 8, a, b) | |
| | | #define orc_mmx_emit_psubb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| | | b, 8, a, b) | |
| | | #define orc_mmx_emit_psubw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_psubd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_psubq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psub | |
| | | q, 8, a, b) | |
| | | #define orc_mmx_emit_paddb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| | | b, 8, a, b) | |
| | | #define orc_mmx_emit_paddw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_paddd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_padd | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_pshufb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psh | |
| | | ufb, 8, a, b) | |
| | | #define orc_mmx_emit_phaddw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pha | |
| | | ddw, 8, a, b) | |
| | | #define orc_mmx_emit_phaddd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pha | |
| | | ddd, 8, a, b) | |
| | | #define orc_mmx_emit_phaddsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ph | |
| | | addsw, 8, a, b) | |
| | | #define orc_mmx_emit_pmaddubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | pmaddubsw, 8, a, b) | |
| | | #define orc_mmx_emit_phsubw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_phs | |
| | | ubw, 8, a, b) | |
| | | #define orc_mmx_emit_phsubd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_phs | |
| | | ubd, 8, a, b) | |
| | | #define orc_mmx_emit_phsubsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ph | |
| | | subsw, 8, a, b) | |
| | | #define orc_mmx_emit_psignb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| | | gnb, 8, a, b) | |
| | | #define orc_mmx_emit_psignw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| | | gnw, 8, a, b) | |
| | | #define orc_mmx_emit_psignd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_psi | |
| | | gnd, 8, a, b) | |
| | | #define orc_mmx_emit_pmulhrsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | mulhrsw, 8, a, b) | |
| | | #define orc_mmx_emit_pabsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| | | b, 8, a, b) | |
| | | #define orc_mmx_emit_pabsw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| | | w, 8, a, b) | |
| | | #define orc_mmx_emit_pabsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pabs | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxbw, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxbd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxbd, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxbq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxbq, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxwd, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxwq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxwq, 8, a, b) | |
| | | #define orc_mmx_emit_pmovsxdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movsxdq, 8, a, b) | |
| | | #define orc_mmx_emit_pmuldq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| | | ldq, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpeqq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpeqq, 8, a, b) | |
| | | #define orc_mmx_emit_packusdw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | ackusdw, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxbw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxbw, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxbd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxbd, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxbq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxbq, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxwd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxwd, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxwq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxwq, 8, a, b) | |
| | | #define orc_mmx_emit_pmovzxdq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_p | |
| | | movzxdq, 8, a, b) | |
| | | #define orc_mmx_emit_pmulld(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmu | |
| | | lld, 8, a, b) | |
| | | #define orc_mmx_emit_phminposuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86 | |
| | | _phminposuw, 8, a, b) | |
| | | #define orc_mmx_emit_pminsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nsb, 8, a, b) | |
| | | #define orc_mmx_emit_pminsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nsd, 8, a, b) | |
| | | #define orc_mmx_emit_pminuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nuw, 8, a, b) | |
| | | #define orc_mmx_emit_pminud(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pmi | |
| | | nud, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxsb(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xsb, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxsd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xsd, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxuw(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xuw, 8, a, b) | |
| | | #define orc_mmx_emit_pmaxud(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pma | |
| | | xud, 8, a, b) | |
| | | #define orc_mmx_emit_pcmpgtq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_pc | |
| | | mpgtq, 8, a, b) | |
| | | #define orc_mmx_emit_addps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_addp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_subps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_subp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_mulps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mulp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_divps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_divp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_sqrtps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_sqr | |
| | | tps, 8, a, b) | |
| | | #define orc_mmx_emit_addpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_addp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_subpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_subp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_mulpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_mulp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_divpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_divp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_sqrtpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_sqr | |
| | | tpd, 8, a, b) | |
| | | #define orc_mmx_emit_cmpeqps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | peqps, 8, a, b) | |
| | | #define orc_mmx_emit_cmpeqpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | peqpd, 8, a, b) | |
| | | #define orc_mmx_emit_cmpltps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | pltps, 8, a, b) | |
| | | #define orc_mmx_emit_cmpltpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | pltpd, 8, a, b) | |
| | | #define orc_mmx_emit_cmpleps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | pleps, 8, a, b) | |
| | | #define orc_mmx_emit_cmplepd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_cm | |
| | | plepd, 8, a, b) | |
| | | #define orc_mmx_emit_cvttps2dq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | cvttps2dq, 8, a, b) | |
| | | #define orc_mmx_emit_cvttpd2dq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_ | |
| | | cvttpd2dq, 8, a, b) | |
| | | #define orc_mmx_emit_cvtdq2ps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| | | vtdq2ps, 8, a, b) | |
| | | #define orc_mmx_emit_cvtdq2pd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| | | vtdq2pd, 8, a, b) | |
| | | #define orc_mmx_emit_cvtps2pd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| | | vtps2pd, 8, a, b) | |
| | | #define orc_mmx_emit_cvtpd2ps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_c | |
| | | vtpd2ps, 8, a, b) | |
| | | #define orc_mmx_emit_minps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_minp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_minpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_minp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_maxps(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_maxp | |
| | | s, 8, a, b) | |
| | | #define orc_mmx_emit_maxpd(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_maxp | |
| | | d, 8, a, b) | |
| | | #define orc_mmx_emit_psraw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psraw_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psrlw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psrlw_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psllw_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psllw_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psrad_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psrad_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psrld_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psrld_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_pslld_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pslld_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psrlq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psrlq_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psllq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psllq_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_psrldq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X8 | |
| | | 6_psrldq_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_pslldq_imm(p,imm,b) orc_x86_emit_cpuinsn_imm(p, ORC_X8 | |
| | | 6_pslldq_imm, imm, 0, b) | |
| | | #define orc_mmx_emit_pshufd(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86_ | |
| | | pshufd, imm, a, b) | |
| | | #define orc_mmx_emit_pshuflw(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pshuflw, imm, a, b) | |
| | | #define orc_mmx_emit_pshufhw(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _pshufhw, imm, a, b) | |
| | | #define orc_mmx_emit_palignr(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86 | |
| | | _psalignr, imm, a, b) | |
| | | | |
| | | #define orc_mmx_emit_pinsrw_memoffset(p,imm,offset,a,b) orc_x86_emit_cpuins | |
| | | n_load_memoffset(p, ORC_X86_pinsrw, 4, imm, offset, a, b) | |
| | | #define orc_mmx_emit_movd_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn | |
| | | _load_memoffset(p, ORC_X86_movd_load, 4, 0, offset, a, b) | |
| | | #define orc_mmx_emit_movq_load_memoffset(p,offset,a,b) orc_x86_emit_cpuinsn | |
| | | _load_memoffset(p, ORC_X86_movq_mmx_load, 4, 0, offset, a, b) | |
| | | | |
| | | #define orc_mmx_emit_pextrw_memoffset(p,imm,a,offset,b) orc_x86_emit_cpuins | |
| | | n_store_memoffset(p, ORC_X86_pextrw, 8, imm, a, offset, b) | |
| | | #define orc_mmx_emit_movd_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins | |
| | | n_store_memoffset(p, ORC_X86_movd_store, 8, 0, a, offset, b) | |
| | | #define orc_mmx_emit_movq_store_memoffset(p,a,offset,b) orc_x86_emit_cpuins | |
| | | n_store_memoffset(p, ORC_X86_movq_mmx_store, 8, 0, a, offset, b) | |
| | | | |
| | | #define orc_mmx_emit_pinsrw_memindex(p,imm,offset,a,a_index,shift,b) orc_x8 | |
| | | 6_emit_cpuinsn_load_memindex(p, ORC_X86_pinsrw, 4, imm, offset, a, a_index, | |
| | | shift, b) | |
| | | #define orc_mmx_emit_movd_load_memindex(p,offset,a,a_index,shift,b) orc_x86 | |
| | | _emit_cpuinsn_load_memindex(p, ORC_X86_movd_load, 4, 0, offset, a, a_index, | |
| | | shift, b) | |
| | | #define orc_mmx_emit_movq_load_memindex(p,offset,a,a_index,shift,b) orc_x86 | |
| | | _emit_cpuinsn_load_memindex(p, ORC_X86_movq_mmx_load, 4, 0, offset, a, a_in | |
| | | dex, shift, b) | |
| | | | |
| | | #define orc_mmx_emit_pextrw_memindex(p,imm,a,offset,b,b_index,shift) orc_x8 | |
| | | 6_emit_cpuinsn_store_memindex(p, ORC_X86_pextrw, imm, a, offset, b, b_index | |
| | | , shift) | |
| | | #define orc_mmx_emit_movd_store_memindex(p,a,offset,b,b_index,shift) orc_x8 | |
| | | 6_emit_cpuinsn_store_memindex(p, ORC_X86_movd_store, 0, a, offset, b, b_ind | |
| | | ex, shift) | |
| | | #define orc_mmx_emit_movq_store_memindex(p,a,offset,b,b_index,shift) orc_x8 | |
| | | 6_emit_cpuinsn_store_memindex(p, ORC_X86_movq_mmx_store, 0, a, offset, b, b | |
| | | _index, shift) | |
| | | | |
| | | #define orc_mmx_emit_pinsrw_register(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, | |
| | | ORC_X86_pinsrw, imm, a, b) | |
| | | #define orc_mmx_emit_movd_load_register(p,a,b) orc_x86_emit_cpuinsn_size(p, | |
| | | ORC_X86_movd_load, 4, a, b) | |
| | | #define orc_mmx_emit_movq_load_register(p,a,b) orc_x86_emit_cpuinsn_size(p, | |
| | | ORC_X86_movq_mmx_load, 4, a, b) | |
| | | | |
| | | #define orc_mmx_emit_pextrw_register(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, | |
| | | ORC_X86_pextrw, imm, a, b) | |
| | | #define orc_mmx_emit_movd_store_register(p,a,b) orc_x86_emit_cpuinsn_size(p | |
| | | , ORC_X86_movd_store, 4, a, b) | |
| | | #define orc_mmx_emit_movq_store_register(p,a,b) orc_x86_emit_cpuinsn_size(p | |
| | | , ORC_X86_movq_mmx_store, 4, a, b) | |
| | | | |
| | | #define orc_mmx_emit_pshufw(p,imm,a,b) orc_x86_emit_cpuinsn_imm(p, ORC_X86_ | |
| | | pshufw, imm, a, b) | |
| | | #define orc_mmx_emit_movq(p,a,b) orc_x86_emit_cpuinsn_size(p, ORC_X86_movq_ | |
| | | mmx_load, 8, a, b) | |
| | | | |
| #endif | | #endif | |
| | | | |
| ORC_END_DECLS | | ORC_END_DECLS | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 17 change blocks. |
| 324 lines changed or deleted | | 695 lines changed or added | |
|