renames _instr_ to _emit_ in the convenience macros
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 14 Sep 2009 15:10:26 +0000 (17:10 +0200)
committerDavid Schleef <ds@schleef.org>
Sun, 20 Sep 2009 04:46:27 +0000 (21:46 -0700)
Use _emit_ for the convenience function names to stay consistent with the other
emit functions.

orc/orcmmx.h
orc/orcprogram-mmx.c
orc/orcrules-mmx.c
orc/orcrules-sse.c
orc/orcsse.h

index 87b2ebc..7174093 100644 (file)
@@ -58,107 +58,106 @@ void orc_mmx_emit_shiftimm (OrcCompiler *p, const char *insn_name,
 unsigned int orc_mmx_get_cpu_flags (void);
 
 /* MMX instructions */
-#define orc_mmx_instr_punpcklbw(p,a,b)  orc_mmx_emit_660f (p, "punpcklbw", 0x60, a, b)
-#define orc_mmx_instr_punpcklwd(p,a,b)  orc_mmx_emit_660f (p, "punpcklwd", 0x61, a, b)
-#define orc_mmx_instr_punpckldq(p,a,b)  orc_mmx_emit_660f (p, "punpckldq", 0x62, a, b)
-#define orc_mmx_instr_packsswb(p,a,b)   orc_mmx_emit_660f (p, "packsswb", 0x63, a, b)
-#define orc_mmx_instr_pcmpgtb(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtb", 0x64, a, b)
-#define orc_mmx_instr_pcmpgtw(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtw", 0x65, a, b)
-#define orc_mmx_instr_pcmpgtd(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtd", 0x66, a, b)
-#define orc_mmx_instr_packuswb(p,a,b)   orc_mmx_emit_660f (p, "packuswb", 0x67, a, b)
-#define orc_mmx_instr_punpckhbw(p,a,b)  orc_mmx_emit_660f (p, "punpckhbw", 0x68, a, b)
-#define orc_mmx_instr_punpckhwd(p,a,b)  orc_mmx_emit_660f (p, "punpckhwd", 0x69, a, b)
-#define orc_mmx_instr_punpckhdq(p,a,b)  orc_mmx_emit_660f (p, "punpckhdq", 0x6a, a, b)
-#define orc_mmx_instr_packssdw(p,a,b)   orc_mmx_emit_660f (p, "packssdw", 0x6b, a, b)
-
-#define orc_mmx_instr_movq(p,a,b)       orc_mmx_emit_660f (p, "movq", 0x6f, a, b)
-
-#define orc_mmx_instr_psraw(p,a,b)      orc_mmx_emit_shiftimm (p, "psraw", 0x71, 4, a, b)
-#define orc_mmx_instr_psrlw(p,a,b)      orc_mmx_emit_shiftimm (p, "psrlw", 0x71, 2, a, b)
-#define orc_mmx_instr_psllw(p,a,b)      orc_mmx_emit_shiftimm (p, "psllw", 0x71, 6, a, b)
-
-#define orc_mmx_instr_psrad(p,a,b)      orc_mmx_emit_shiftimm (p, "psrad", 0x72, 4, a, b)
-#define orc_mmx_instr_psrld(p,a,b)      orc_mmx_emit_shiftimm (p, "psrld", 0x72, 2, a, b)
-#define orc_mmx_instr_pslld(p,a,b)      orc_mmx_emit_shiftimm (p, "pslld", 0x72, 6, a, b)
-
-#define orc_mmx_instr_psrlq(p,a,b)      orc_mmx_emit_shiftimm (p, "psrlq", 0x73, 2, a, b)
-#define orc_mmx_instr_psllq(p,a,b)      orc_mmx_emit_shiftimm (p, "psllq", 0x73, 6, a, b)
-
-#define orc_mmx_instr_pcmpeqb(p,a,b)    orc_mmx_emit_660f (p, "pcmpeqb", 0x74, a, b)
-#define orc_mmx_instr_pcmpeqw(p,a,b)    orc_mmx_emit_660f (p, "pcmpeqw", 0x75, a, b)
-#define orc_mmx_instr_pcmpeqd(p,a,b)    orc_mmx_emit_660f (p, "pcmpeqd", 0x76, a, b)
-#define orc_mmx_instr_emms(p)           orc_x86_emit_emms (p)
-
-#define orc_mmx_instr_pmullw(p,a,b)     orc_mmx_emit_660f (p, "pmullw", 0xd5, a, b)
-
-#define orc_mmx_instr_psubusb(p,a,b)    orc_mmx_emit_660f (p, "psubusb", 0xd8, a, b)
-#define orc_mmx_instr_psubusw(p,a,b)    orc_mmx_emit_660f (p, "psubusw", 0xd9, a, b)
-#define orc_mmx_instr_pand(p,a,b)       orc_mmx_emit_660f (p, "pand", 0xdb, a, b)
-#define orc_mmx_instr_paddusb(p,a,b)    orc_mmx_emit_660f (p, "paddusb", 0xdc, a, b)
-#define orc_mmx_instr_paddusw(p,a,b)    orc_mmx_emit_660f (p, "paddusw", 0xdd, a, b)
-#define orc_mmx_instr_pandn(p,a,b)      orc_mmx_emit_660f (p, "pandn", 0xdf, a, b)
-
-#define orc_mmx_instr_pmulhw(p,a,b)     orc_mmx_emit_660f (p, "pmulhw", 0xe5, a, b)
-
-#define orc_mmx_instr_psubsb(p,a,b)     orc_mmx_emit_660f (p, "psubsb", 0xe8, a, b)
-#define orc_mmx_instr_psubsw(p,a,b)     orc_mmx_emit_660f (p, "psubsw", 0xe9, a, b)
-#define orc_mmx_instr_por(p,a,b)        orc_mmx_emit_660f (p, "por", 0xeb, a, b)
-#define orc_mmx_instr_paddsb(p,a,b)     orc_mmx_emit_660f (p, "paddsb", 0xec, a, b)
-#define orc_mmx_instr_paddsw(p,a,b)     orc_mmx_emit_660f (p, "paddsw", 0xed, a, b)
-#define orc_mmx_instr_pxor(p,a,b)       orc_mmx_emit_660f (p, "pxor", 0xef, a, b)
-
-#define orc_mmx_instr_pmaddwd(p,a,b)    orc_mmx_emit_660f (p, "pmaddwd", 0xf5, a, b)
-
-#define orc_mmx_instr_psubb(p,a,b)      orc_mmx_emit_660f (p, "psubb", 0xf8, a, b)
-#define orc_mmx_instr_psubw(p,a,b)      orc_mmx_emit_660f (p, "psubw", 0xf9, a, b)
-#define orc_mmx_instr_psubd(p,a,b)      orc_mmx_emit_660f (p, "psubd", 0xfa, a, b)
-
-#define orc_mmx_instr_paddb(p,a,b)      orc_mmx_emit_660f (p, "paddb", 0xfc, a, b)
-#define orc_mmx_instr_paddw(p,a,b)      orc_mmx_emit_660f (p, "paddw", 0xfd, a, b)
-#define orc_mmx_instr_paddd(p,a,b)      orc_mmx_emit_660f (p, "paddd", 0xfe, a, b)
+#define orc_mmx_emit_punpcklbw(p,a,b)  orc_mmx_emit_660f (p, "punpcklbw", 0x60, a, b)
+#define orc_mmx_emit_punpcklwd(p,a,b)  orc_mmx_emit_660f (p, "punpcklwd", 0x61, a, b)
+#define orc_mmx_emit_punpckldq(p,a,b)  orc_mmx_emit_660f (p, "punpckldq", 0x62, a, b)
+#define orc_mmx_emit_packsswb(p,a,b)   orc_mmx_emit_660f (p, "packsswb", 0x63, a, b)
+#define orc_mmx_emit_pcmpgtb(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtb", 0x64, a, b)
+#define orc_mmx_emit_pcmpgtw(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtw", 0x65, a, b)
+#define orc_mmx_emit_pcmpgtd(p,a,b)    orc_mmx_emit_660f (p, "pcmpgtd", 0x66, a, b)
+#define orc_mmx_emit_packuswb(p,a,b)   orc_mmx_emit_660f (p, "packuswb", 0x67, a, b)
+#define orc_mmx_emit_punpckhbw(p,a,b)  orc_mmx_emit_660f (p, "punpckhbw", 0x68, a, b)
+#define orc_mmx_emit_punpckhwd(p,a,b)  orc_mmx_emit_660f (p, "punpckhwd", 0x69, a, b)
+#define orc_mmx_emit_punpckhdq(p,a,b)  orc_mmx_emit_660f (p, "punpckhdq", 0x6a, a, b)
+#define orc_mmx_emit_packssdw(p,a,b)   orc_mmx_emit_660f (p, "packssdw", 0x6b, a, b)
+
+#define orc_mmx_emit_movq(p,a,b)       orc_mmx_emit_660f (p, "movq", 0x6f, a, b)
+
+#define orc_mmx_emit_psraw(p,a,b)      orc_mmx_emit_shiftimm (p, "psraw", 0x71, 4, a, b)
+#define orc_mmx_emit_psrlw(p,a,b)      orc_mmx_emit_shiftimm (p, "psrlw", 0x71, 2, a, b)
+#define orc_mmx_emit_psllw(p,a,b)      orc_mmx_emit_shiftimm (p, "psllw", 0x71, 6, a, b)
+
+#define orc_mmx_emit_psrad(p,a,b)      orc_mmx_emit_shiftimm (p, "psrad", 0x72, 4, a, b)
+#define orc_mmx_emit_psrld(p,a,b)      orc_mmx_emit_shiftimm (p, "psrld", 0x72, 2, a, b)
+#define orc_mmx_emit_pslld(p,a,b)      orc_mmx_emit_shiftimm (p, "pslld", 0x72, 6, a, b)
+
+#define orc_mmx_emit_psrlq(p,a,b)      orc_mmx_emit_shiftimm (p, "psrlq", 0x73, 2, a, b)
+#define orc_mmx_emit_psllq(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", 0x74, a, b)
+#define orc_mmx_emit_pcmpeqw(p,a,b)    orc_mmx_emit_660f (p, "pcmpeqw", 0x75, a, b)
+#define orc_mmx_emit_pcmpeqd(p,a,b)    orc_mmx_emit_660f (p, "pcmpeqd", 0x76, 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", 0xd8, a, b)
+#define orc_mmx_emit_psubusw(p,a,b)    orc_mmx_emit_660f (p, "psubusw", 0xd9, 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", 0xdc, a, b)
+#define orc_mmx_emit_paddusw(p,a,b)    orc_mmx_emit_660f (p, "paddusw", 0xdd, 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", 0xf5, 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_instr_pinsrw(p,a,b)     orc_mmx_emit_660f (p, "pinsrw", 0xc4, a, b)
-#define orc_mmx_instr_pextrw(p,a,b)     orc_mmx_emit_660f (p, "pextrw", 0xc5, a, b)
-#define orc_mmx_instr_pminub(p,a,b)     orc_mmx_emit_660f (p, "pminub", 0xda, a, b)
-#define orc_mmx_instr_pmaxub(p,a,b)     orc_mmx_emit_660f (p, "pmaxub", 0xde, a, b)
-#define orc_mmx_instr_pavgb(p,a,b)      orc_mmx_emit_660f (p, "pavgb", 0xe0, a, b)
-#define orc_mmx_instr_pavgw(p,a,b)      orc_mmx_emit_660f (p, "pavgw", 0xe3, a, b)
-#define orc_mmx_instr_pmulhuw(p,a,b)    orc_mmx_emit_660f (p, "pmulhuw", 0xe4, a, b)
-#define orc_mmx_instr_pminsw(p,a,b)     orc_mmx_emit_660f (p, "pminsw", 0xea, a, b)
-#define orc_mmx_instr_pmaxsw(p,a,b)     orc_mmx_emit_660f (p, "pmaxsw", 0xee, a, b)
-#define orc_mmx_instr_pshufw(p,s,a,b)   orc_mmx_emit_pshufw (p, s, a, b)
-#define orc_mmx_instr_psadbw(p,a,b)     orc_mmx_emit_660f (p, "psadbw", 0xf6, a, b)
+#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", 0xe4, 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_instr_pmulhrw(p,a,b)    orc_mmx_emit_660f (p, "pmulhrw", 0xb7, a, b)
-#define orc_mmx_instr_pavgusb(p,a,b)    orc_mmx_emit_660f (p, "pavgusb", 0xbf, a, b)
+#define orc_mmx_emit_pmulhrw(p,a,b)    orc_mmx_emit_660f (p, "pmulhrw", 0xb7, a, b)
+#define orc_mmx_emit_pavgusb(p,a,b)    orc_mmx_emit_660f (p, "pavgusb", 0xbf, a, b)
 
 /* MMX SSE2 instructions */
-#define orc_mmx_instr_paddq(p,a,b)      orc_mmx_emit_660f (p, "paddq", 0xd4, a, b)
-#define orc_mmx_instr_psubq(p,a,b)      orc_mmx_emit_660f (p, "psubq", 0xfb, a, b)
-#define orc_mmx_instr_pmuludq(p,a,b)    orc_mmx_emit_660f (p, "pmuludq", 0xf4, a, b)
+#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", 0xf4, a, b)
 
 /* MMX SSE3 instructions */
 
 /* MMX SSSE3 instructions */
-#define orc_mmx_instr_pshufb(p,a,b)     orc_mmx_emit_660f (p, "pshufb", 0x3800, a, b)
-#define orc_mmx_instr_phaddw(p,a,b)     orc_mmx_emit_660f (p, "phaddw", 0x3801, a, b)
-#define orc_mmx_instr_phaddd(p,a,b)     orc_mmx_emit_660f (p, "phaddd", 0x3802, a, b)
-#define orc_mmx_instr_phaddsw(p,a,b)    orc_mmx_emit_660f (p, "phaddsw", 0x3803, a, b)
-#define orc_mmx_instr_pmaddubsw(p,a,b)  orc_mmx_emit_660f (p, "pmaddubsw", 0x3804, a, b)
-#define orc_mmx_instr_phsubw(p,a,b)     orc_mmx_emit_660f (p, "phsubw", 0x3805, a, b)
-#define orc_mmx_instr_phsubd(p,a,b)     orc_mmx_emit_660f (p, "phsubd", 0x3806, a, b)
-#define orc_mmx_instr_phsubsw(p,a,b)    orc_mmx_emit_660f (p, "phsubsw", 0x3807, a, b)
-#define orc_mmx_instr_psignb(p,a,b)     orc_mmx_emit_660f (p, "psignb", 0x3808, a, b)
-#define orc_mmx_instr_psignw(p,a,b)     orc_mmx_emit_660f (p, "psignw", 0x3809, a, b)
-#define orc_mmx_instr_psignd(p,a,b)     orc_mmx_emit_660f (p, "psignd", 0x380a, a, b)
-#define orc_mmx_instr_pmulhrsw(p,a,b)   orc_mmx_emit_660f (p, "pmulhrsw", 0x380b, a, b)
-
-#define orc_mmx_instr_pabsb(p,a,b)      orc_mmx_emit_660f (p, "pabsb", 0x381c, a, b)
-#define orc_mmx_instr_pabsw(p,a,b)      orc_mmx_emit_660f (p, "pabsw", 0x381d, a, b)
-#define orc_mmx_instr_pabsd(p,a,b)      orc_mmx_emit_660f (p, "pabsd", 0x381e, a, b)
+#define orc_mmx_emit_pshufb(p,a,b)     orc_mmx_emit_660f (p, "pshufb", 0x3800, a, b)
+#define orc_mmx_emit_phaddw(p,a,b)     orc_mmx_emit_660f (p, "phaddw", 0x3801, a, b)
+#define orc_mmx_emit_phaddd(p,a,b)     orc_mmx_emit_660f (p, "phaddd", 0x3802, a, b)
+#define orc_mmx_emit_phaddsw(p,a,b)    orc_mmx_emit_660f (p, "phaddsw", 0x3803, a, b)
+#define orc_mmx_emit_pmaddubsw(p,a,b)  orc_mmx_emit_660f (p, "pmaddubsw", 0x3804, a, b)
+#define orc_mmx_emit_phsubw(p,a,b)     orc_mmx_emit_660f (p, "phsubw", 0x3805, a, b)
+#define orc_mmx_emit_phsubd(p,a,b)     orc_mmx_emit_660f (p, "phsubd", 0x3806, a, b)
+#define orc_mmx_emit_phsubsw(p,a,b)    orc_mmx_emit_660f (p, "phsubsw", 0x3807, a, b)
+#define orc_mmx_emit_psignb(p,a,b)     orc_mmx_emit_660f (p, "psignb", 0x3808, a, b)
+#define orc_mmx_emit_psignw(p,a,b)     orc_mmx_emit_660f (p, "psignw", 0x3809, a, b)
+#define orc_mmx_emit_psignd(p,a,b)     orc_mmx_emit_660f (p, "psignd", 0x380a, a, b)
+#define orc_mmx_emit_pmulhrsw(p,a,b)   orc_mmx_emit_660f (p, "pmulhrsw", 0x380b, a, b)
+
+#define orc_mmx_emit_pabsb(p,a,b)      orc_mmx_emit_660f (p, "pabsb", 0x381c, a, b)
+#define orc_mmx_emit_pabsw(p,a,b)      orc_mmx_emit_660f (p, "pabsw", 0x381d, a, b)
+#define orc_mmx_emit_pabsd(p,a,b)      orc_mmx_emit_660f (p, "pabsd", 0x381e, a, b)
 
 #endif
 
index 5e81628..addb9cf 100644 (file)
@@ -179,23 +179,23 @@ mmx_save_accumulators (OrcCompiler *compiler)
         //orc_mmx_emit_pshufd (compiler, 0xee, src, compiler->tmpreg);
 
         if (compiler->vars[i].size == 2) {
-          orc_mmx_emit_660f (compiler, "paddw", 0xfd, compiler->tmpreg, src);
+          orc_mmx_emit_paddw (compiler, compiler->tmpreg, src);
         } else {
-          orc_mmx_emit_660f (compiler, "paddd", 0xfe, compiler->tmpreg, src);
+          orc_mmx_emit_paddd (compiler, compiler->tmpreg, src);
         }
 
         //orc_mmx_emit_pshufd (compiler, 0x55, src, compiler->tmpreg);
 
         if (compiler->vars[i].size == 2) {
-          orc_mmx_emit_660f (compiler, "paddw", 0xfd, compiler->tmpreg, src);
+          orc_mmx_emit_paddw (compiler, compiler->tmpreg, src);
         } else {
-          orc_mmx_emit_660f (compiler, "paddd", 0xfe, compiler->tmpreg, src);
+          orc_mmx_emit_paddd (compiler, compiler->tmpreg, src);
         }
 
         if (compiler->vars[i].size == 2) {
           orc_mmx_emit_pshufw (compiler, 0x55, src, compiler->tmpreg);
 
-          orc_mmx_emit_660f (compiler, "paddw", 0xfd, compiler->tmpreg, src);
+          orc_mmx_emit_paddw (compiler, compiler->tmpreg, src);
         }
 
         if (compiler->vars[i].size == 2) {
@@ -262,7 +262,7 @@ mmx_load_constants (OrcCompiler *compiler)
         }
         break;
       case ORC_VAR_TYPE_ACCUMULATOR:
-        orc_mmx_emit_660f (compiler, "pxor", 0xef,
+        orc_mmx_emit_pxor (compiler,
             compiler->vars[i].alloc, compiler->vars[i].alloc);
         break;
       case ORC_VAR_TYPE_TEMP:
index 6764f45..2e9d5a1 100644 (file)
@@ -20,7 +20,7 @@ void
 orc_mmx_emit_loadil (OrcCompiler *p, int reg, int value)
 {
   if (value == 0) {
-    orc_mmx_instr_pxor (p, reg, reg);
+    orc_mmx_emit_pxor (p, reg, reg);
   } else {
     orc_x86_emit_mov_imm_reg (p, 4, value, p->gp_tmpreg);
     orc_x86_emit_mov_reg_mmx (p, p->gp_tmpreg, reg);
@@ -52,7 +52,7 @@ orc_mmx_emit_loadpb (OrcCompiler *p, int reg, int param)
       (int)ORC_STRUCT_OFFSET(OrcExecutor, params[param]),
       p->exec_reg, reg, FALSE);
 
-  orc_mmx_instr_punpcklbw (p, reg, reg);
+  orc_mmx_emit_punpcklbw (p, reg, reg);
 
   orc_mmx_emit_pshufw (p, 0, reg, reg);
 }
@@ -88,7 +88,7 @@ orc_mmx_emit_loadpq (OrcCompiler *p, int reg, int param)
 static void
 mmx_rule_copyx (OrcCompiler *p, void *user, OrcInstruction *insn)
 {
-  orc_mmx_instr_movq (p, 
+  orc_mmx_emit_movq (p, 
       p->vars[insn->src_args[0]].alloc,
       p->vars[insn->dest_args[0]].alloc);
 }
@@ -179,7 +179,7 @@ mmx_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_paddw (p, src, dest);
+  orc_mmx_emit_paddw (p, src, dest);
 }
 
 static void
@@ -188,7 +188,7 @@ mmx_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_paddd (p, src, dest);
+  orc_mmx_emit_paddd (p, src, dest);
 }
 
 static void
@@ -198,9 +198,9 @@ mmx_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src2 = p->vars[insn->src_args[1]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_movq (p, src1, p->tmpreg);
-  orc_mmx_instr_psadbw (p, src2, p->tmpreg);
-  orc_mmx_instr_paddd (p, p->tmpreg, dest);
+  orc_mmx_emit_movq (p, src1, p->tmpreg);
+  orc_mmx_emit_psadbw (p, src2, p->tmpreg);
+  orc_mmx_emit_paddd (p, p->tmpreg, dest);
 }
 
 static void
@@ -214,7 +214,7 @@ mmx_rule_signX (OrcCompiler *p, void *user, OrcInstruction *insn)
   int codes[] = { 0x3808, 0x3809, 0x380a };
 
   if (src == dest) {
-    orc_mmx_instr_movq (p, src, p->tmpreg);
+    orc_mmx_emit_movq (p, src, p->tmpreg);
     src = p->tmpreg;
   }
 
@@ -260,8 +260,8 @@ mmx_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_punpcklbw (p, src, dest);
-  orc_mmx_instr_psraw (p, 8, dest);
+  orc_mmx_emit_punpcklbw (p, src, dest);
+  orc_mmx_emit_psraw (p, 8, dest);
 }
 
 static void
@@ -271,8 +271,8 @@ mmx_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
 
   /* FIXME should do this by unpacking with a zero reg */
-  orc_mmx_instr_punpcklbw (p, src, dest);
-  orc_mmx_instr_psrlw (p, 8, dest);
+  orc_mmx_emit_punpcklbw (p, src, dest);
+  orc_mmx_emit_psrlw (p, 8, dest);
 }
 
 static void
@@ -281,7 +281,7 @@ mmx_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_packsswb (p, src, dest);
+  orc_mmx_emit_packsswb (p, src, dest);
 }
 
 static void
@@ -290,7 +290,7 @@ mmx_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_packuswb (p, src, dest);
+  orc_mmx_emit_packuswb (p, src, dest);
 }
 
 static void
@@ -302,12 +302,12 @@ mmx_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_psllw (p, 8, dest);
-  orc_mmx_instr_psrlw (p, 8, dest);
-  orc_mmx_instr_packuswb (p, dest, dest);
+  orc_mmx_emit_psllw (p, 8, dest);
+  orc_mmx_emit_psrlw (p, 8, dest);
+  orc_mmx_emit_packuswb (p, dest, dest);
 }
 
 static void
@@ -316,8 +316,8 @@ mmx_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_punpcklwd (p, src, dest);
-  orc_mmx_instr_psrad (p, 16, dest);
+  orc_mmx_emit_punpcklwd (p, src, dest);
+  orc_mmx_emit_psrad (p, 16, dest);
 }
 
 static void
@@ -327,8 +327,8 @@ mmx_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
 
   /* FIXME should do this by unpacking with a zero reg */
-  orc_mmx_instr_punpcklwd (p, src, dest);
-  orc_mmx_instr_psrld (p, 16, dest);
+  orc_mmx_emit_punpcklwd (p, src, dest);
+  orc_mmx_emit_psrld (p, 16, dest);
 }
 
 static void
@@ -339,12 +339,12 @@ mmx_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   /* FIXME slow */
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_pslld (p, 16, dest);
-  orc_mmx_instr_psrad (p, 16, dest);
-  orc_mmx_instr_packssdw (p, dest, dest);
+  orc_mmx_emit_pslld (p, 16, dest);
+  orc_mmx_emit_psrad (p, 16, dest);
+  orc_mmx_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -353,7 +353,7 @@ mmx_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_packssdw (p, src, dest);
+  orc_mmx_emit_packssdw (p, src, dest);
 }
 
 static void
@@ -363,10 +363,10 @@ mmx_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_mmx_instr_movq (p, dest, tmp);
-  orc_mmx_instr_pmulhw (p, src, tmp);
-  orc_mmx_instr_pmullw (p, src, dest);
-  orc_mmx_instr_punpcklwd (p, tmp, dest);
+  orc_mmx_emit_movq (p, dest, tmp);
+  orc_mmx_emit_pmulhw (p, src, tmp);
+  orc_mmx_emit_pmullw (p, src, dest);
+  orc_mmx_emit_punpcklwd (p, tmp, dest);
 }
 
 static void
@@ -379,12 +379,12 @@ mmx_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* same as convlw */
 
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_pslld (p, 16, dest);
-  orc_mmx_instr_psrad (p, 16, dest);
-  orc_mmx_instr_packssdw (p, dest, dest);
+  orc_mmx_emit_pslld (p, 16, dest);
+  orc_mmx_emit_psrad (p, 16, dest);
+  orc_mmx_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -396,11 +396,11 @@ mmx_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_psrad (p, 16, dest);
-  orc_mmx_instr_packssdw (p, dest, dest);
+  orc_mmx_emit_psrad (p, 16, dest);
+  orc_mmx_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -413,12 +413,12 @@ mmx_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* same as convwb */
 
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_psllw (p, 8, dest);
-  orc_mmx_instr_psraw (p, 8, dest);
-  orc_mmx_instr_packsswb (p, dest, dest);
+  orc_mmx_emit_psllw (p, 8, dest);
+  orc_mmx_emit_psraw (p, 8, dest);
+  orc_mmx_emit_packsswb (p, dest, dest);
 }
 
 static void
@@ -430,11 +430,11 @@ mmx_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
-  orc_mmx_instr_psraw (p, 8, dest);
-  orc_mmx_instr_packsswb (p, dest, dest);
+  orc_mmx_emit_psraw (p, 8, dest);
+  orc_mmx_emit_packsswb (p, dest, dest);
 }
 
 static void
@@ -443,7 +443,7 @@ mmx_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[1]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_punpcklbw (p, src, dest);
+  orc_mmx_emit_punpcklbw (p, src, dest);
 }
 
 static void
@@ -452,7 +452,7 @@ mmx_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[1]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_mmx_instr_punpcklwd (p, src, dest);
+  orc_mmx_emit_punpcklwd (p, src, dest);
 }
 
 static void
@@ -466,9 +466,9 @@ mmx_emit_load_mask (OrcCompiler *p, unsigned int mask1, unsigned int mask2)
   orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(1,0,1,0), tmp, tmp);
   orc_x86_emit_mov_imm_reg (p, 4, mask2, p->gp_tmpreg);
   orc_x86_emit_mov_reg_mmx (p, p->gp_tmpreg, tmp2);
-  orc_mmx_instr_punpcklbw (p, tmp2, tmp2);
-  orc_mmx_instr_punpcklwd (p, tmp2, tmp2);
-  orc_mmx_instr_paddb (p, tmp2, tmp);
+  orc_mmx_emit_punpcklbw (p, tmp2, tmp2);
+  orc_mmx_emit_punpcklwd (p, tmp2, tmp2);
+  orc_mmx_emit_paddb (p, tmp2, tmp);
 }
 
 static void
@@ -483,7 +483,7 @@ mmx_rule_select0lw_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x05040100, 0x08000800);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
@@ -501,7 +501,7 @@ mmx_rule_select1lw_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x07060302, 0x08000800);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
@@ -519,7 +519,7 @@ mmx_rule_select0wb_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x06040200, 0x08000800);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
@@ -537,7 +537,7 @@ mmx_rule_select1wb_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x07050301, 0x08000800);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
 
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
@@ -557,7 +557,7 @@ mmx_rule_swapw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x02030001, 0x0c080400);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
 }
@@ -574,7 +574,7 @@ mmx_rule_swapl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   mmx_emit_load_mask (p, 0x00010203, 0x0c080400);
 
   if (src != dest) {
-    orc_mmx_instr_movq (p, src, dest);
+    orc_mmx_emit_movq (p, src, dest);
   }
   orc_mmx_emit_660f (p, "pshufb", 0x3800, tmp, dest);
 }
@@ -589,11 +589,11 @@ mmx_rule_maxuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   orc_x86_emit_mov_imm_reg (p, 4, 0x80008000, p->gp_tmpreg);
   orc_x86_emit_mov_reg_mmx (p, p->gp_tmpreg, tmp);
   orc_mmx_emit_pshufw (p, ORC_MMX_SHUF(1,0,1,0), tmp, tmp);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
-  orc_mmx_instr_pmaxsw (p, src, dest);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
+  orc_mmx_emit_pmaxsw (p, src, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 static void
@@ -605,11 +605,11 @@ mmx_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_mmx_emit_loadiw (p, tmp, 0x8000);
 
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
-  orc_mmx_instr_pminsw (p, src, dest);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
+  orc_mmx_emit_pminsw (p, src, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 static void
@@ -621,11 +621,11 @@ mmx_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_mmx_emit_loadib (p, tmp, 0x80);
 
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
-  orc_mmx_instr_pavgb (p, src, dest);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
+  orc_mmx_emit_pavgb (p, src, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 static void
@@ -637,11 +637,11 @@ mmx_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_mmx_emit_loadiw (p, tmp, 0x8000);
 
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
-  orc_mmx_instr_pavgw (p, src, dest);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
+  orc_mmx_emit_pavgw (p, src, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 static void
@@ -651,11 +651,11 @@ mmx_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_mmx_instr_movq (p, dest, tmp);
-  orc_mmx_instr_pcmpgtb (p, src, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, dest, tmp);
+  orc_mmx_emit_pcmpgtb (p, src, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 }
 
 static void
@@ -665,11 +665,11 @@ mmx_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_mmx_instr_movq (p, src, tmp);
-  orc_mmx_instr_pcmpgtb (p, dest, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, src, tmp);
+  orc_mmx_emit_pcmpgtb (p, dest, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 }
 
 static void
@@ -679,11 +679,11 @@ mmx_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_mmx_instr_movq (p, dest, tmp);
-  orc_mmx_instr_pcmpgtd (p, src, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, dest, tmp);
+  orc_mmx_emit_pcmpgtd (p, src, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 }
 
 static void
@@ -693,11 +693,11 @@ mmx_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_mmx_instr_movq (p, src, tmp);
-  orc_mmx_instr_pcmpgtd (p, dest, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, src, tmp);
+  orc_mmx_emit_pcmpgtd (p, dest, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 }
 
 static void
@@ -708,18 +708,18 @@ mmx_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int tmp = p->tmpreg;
 
   orc_mmx_emit_loadil (p, tmp, 0x80000000);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 
-  orc_mmx_instr_movq (p, dest, tmp);
-  orc_mmx_instr_pcmpgtd (p, src, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, dest, tmp);
+  orc_mmx_emit_pcmpgtd (p, src, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 
   orc_mmx_emit_loadil (p, tmp, 0x80000000);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 static void
@@ -730,18 +730,18 @@ mmx_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int tmp = p->tmpreg;
 
   orc_mmx_emit_loadil (p, tmp, 0x80000000);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 
-  orc_mmx_instr_movq (p, src, tmp);
-  orc_mmx_instr_pcmpgtd (p, dest, tmp);
-  orc_mmx_instr_pand (p, tmp, dest);
-  orc_mmx_instr_pandn (p, src, tmp);
-  orc_mmx_instr_por (p, tmp, dest);
+  orc_mmx_emit_movq (p, src, tmp);
+  orc_mmx_emit_pcmpgtd (p, dest, tmp);
+  orc_mmx_emit_pand (p, tmp, dest);
+  orc_mmx_emit_pandn (p, src, tmp);
+  orc_mmx_emit_por (p, tmp, dest);
 
   orc_mmx_emit_loadil (p, tmp, 0x80000000);
-  orc_mmx_instr_pxor (p, tmp, src);
-  orc_mmx_instr_pxor (p, tmp, dest);
+  orc_mmx_emit_pxor (p, tmp, src);
+  orc_mmx_emit_pxor (p, tmp, dest);
 }
 
 
index 00010c0..1857272 100644 (file)
@@ -20,11 +20,11 @@ void
 orc_sse_emit_loadil (OrcCompiler *p, int reg, int value)
 {
   if (value == 0) {
-    orc_sse_instr_pxor(p, reg, reg);
+    orc_sse_emit_pxor(p, reg, reg);
   } else {
     orc_x86_emit_mov_imm_reg (p, 4, value, p->gp_tmpreg);
     orc_x86_emit_mov_reg_sse (p, p->gp_tmpreg, reg);
-    orc_sse_instr_pshufd (p, 0, reg, reg);
+    orc_sse_emit_pshufd (p, 0, reg, reg);
   }
 }
 
@@ -48,19 +48,19 @@ orc_sse_emit_loadiw (OrcCompiler *p, int reg, int value)
 void
 orc_sse_emit_loadpb (OrcCompiler *p, int reg, int param)
 {
-  orc_x86_emit_mov_memoffset_sse (p, 4, 
+  orc_x86_emit_mov_memoffset_sse (p, 4,
       (int)ORC_STRUCT_OFFSET(OrcExecutor, params[param]),
       p->exec_reg, reg, FALSE);
 
-  orc_sse_instr_punpcklbw (p, reg, reg);
-  orc_sse_instr_pshuflw (p, 0, reg, reg);
-  orc_sse_instr_pshufd (p, 0, reg, reg);
+  orc_sse_emit_punpcklbw (p, reg, reg);
+  orc_sse_emit_pshuflw (p, 0, reg, reg);
+  orc_sse_emit_pshufd (p, 0, reg, reg);
 }
 
 void
 orc_sse_emit_loadpw (OrcCompiler *p, int reg, int param)
 {
-  orc_x86_emit_mov_memoffset_sse (p, 4, 
+  orc_x86_emit_mov_memoffset_sse (p, 4,
       (int)ORC_STRUCT_OFFSET(OrcExecutor, params[param]),
       p->exec_reg, reg, FALSE);
 
@@ -71,7 +71,7 @@ orc_sse_emit_loadpw (OrcCompiler *p, int reg, int param)
 void
 orc_sse_emit_loadpl (OrcCompiler *p, int reg, int param)
 {
-  orc_x86_emit_mov_memoffset_sse (p, 4, 
+  orc_x86_emit_mov_memoffset_sse (p, 4,
       (int)ORC_STRUCT_OFFSET(OrcExecutor, params[param]),
       p->exec_reg, reg, FALSE);
 
@@ -81,7 +81,7 @@ orc_sse_emit_loadpl (OrcCompiler *p, int reg, int param)
 void
 orc_sse_emit_loadpq (OrcCompiler *p, int reg, int param)
 {
-  orc_x86_emit_mov_memoffset_sse (p, 8, 
+  orc_x86_emit_mov_memoffset_sse (p, 8,
       (int)ORC_STRUCT_OFFSET(OrcExecutor, params[param]),
       p->exec_reg, reg, FALSE);
 
@@ -91,7 +91,7 @@ orc_sse_emit_loadpq (OrcCompiler *p, int reg, int param)
 static void
 sse_rule_copyx (OrcCompiler *p, void *user, OrcInstruction *insn)
 {
-  orc_sse_instr_movdqa (p,
+  orc_sse_emit_movdqa (p,
       p->vars[insn->src_args[0]].alloc,
       p->vars[insn->dest_args[0]].alloc);
 }
@@ -191,7 +191,7 @@ sse_rule_accw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_paddw (p, src, dest);
+  orc_sse_emit_paddw (p, src, dest);
 }
 
 static void
@@ -201,9 +201,9 @@ sse_rule_accl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
 
   if (p->loop_shift == 0) {
-    orc_sse_instr_pslldq (p, 12, src);
+    orc_sse_emit_pslldq (p, 12, src);
   }
-  orc_sse_instr_paddd (p, src, dest);
+  orc_sse_emit_paddd (p, src, dest);
 }
 
 static void
@@ -214,9 +214,9 @@ sse_rule_accsadubl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, src1, tmp);
-  orc_sse_instr_psadbw (p, src2, tmp);
-  orc_sse_instr_paddd (p, tmp, dest);
+  orc_sse_emit_movdqa (p, src1, tmp);
+  orc_sse_emit_psadbw (p, src2, tmp);
+  orc_sse_emit_paddd (p, tmp, dest);
 }
 
 static void
@@ -232,7 +232,7 @@ sse_rule_signX_ssse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   int gptmp = p->gp_tmpreg;
 
   if (src == dest) {
-    orc_sse_instr_movdqa (p, src, tmp);
+    orc_sse_emit_movdqa (p, src, tmp);
     src = tmp;
   }
 
@@ -253,18 +253,18 @@ sse_rule_signw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int gptmp = p->gp_tmpreg;
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
   orc_x86_emit_mov_imm_reg (p, 4, 0x00010001, gptmp);
   orc_x86_emit_mov_reg_sse (p, gptmp, tmp);
   orc_sse_emit_pshufd (p, 0, tmp, tmp);
-  orc_sse_instr_pminsw (p, tmp, dest);
+  orc_sse_emit_pminsw (p, tmp, dest);
 
   orc_x86_emit_mov_imm_reg (p, 4, 0xffffffff, gptmp);
   orc_x86_emit_mov_reg_sse (p, gptmp, tmp);
   orc_sse_emit_pshufd (p, 0, tmp, tmp);
-  orc_sse_instr_pmaxsw (p, tmp, dest);
+  orc_sse_emit_pmaxsw (p, tmp, dest);
 }
 
 static void
@@ -275,15 +275,15 @@ sse_rule_absw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int tmp = p->tmpreg;
 
   if (src == dest) {
-    orc_sse_instr_movdqa (p, src, tmp);
+    orc_sse_emit_movdqa (p, src, tmp);
   } else {
-    orc_sse_instr_movdqa (p, src, tmp);
-    orc_sse_instr_movdqa (p, tmp, dest);
+    orc_sse_emit_movdqa (p, src, tmp);
+    orc_sse_emit_movdqa (p, tmp, dest);
   }
 
-  orc_sse_instr_psraw (p, 15, tmp);
-  orc_sse_instr_pxor (p, tmp, dest);
-  orc_sse_instr_psubw (p, tmp, dest);
+  orc_sse_emit_psraw (p, 15, tmp);
+  orc_sse_emit_pxor (p, tmp, dest);
+  orc_sse_emit_psubw (p, tmp, dest);
 
 }
 
@@ -303,7 +303,7 @@ sse_rule_shift (OrcCompiler *p, void *user, OrcInstruction *insn)
   } else if (p->vars[insn->src_args[1]].vartype == ORC_VAR_TYPE_PARAM) {
     /* FIXME this is a gross hack to reload the register with a
      * 64-bit version of the parameter. */
-    orc_x86_emit_mov_memoffset_sse (p, 4, 
+    orc_x86_emit_mov_memoffset_sse (p, 4,
         (int)ORC_STRUCT_OFFSET(OrcExecutor, params[insn->src_args[1]]),
         p->exec_reg, p->tmpreg, FALSE);
 
@@ -321,8 +321,8 @@ sse_rule_convsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_punpcklbw (p, src, dest);
-  orc_sse_instr_psraw (p, 8, dest);
+  orc_sse_emit_punpcklbw (p, src, dest);
+  orc_sse_emit_psraw (p, 8, dest);
 }
 
 static void
@@ -334,14 +334,14 @@ sse_rule_convubw (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   /* FIXME need a zero register */
   if (0) {
-    orc_sse_instr_punpcklbw (p, src, dest);
-    orc_sse_instr_psrlw (p, 8, dest);
+    orc_sse_emit_punpcklbw (p, src, dest);
+    orc_sse_emit_psrlw (p, 8, dest);
   } else {
     if (src != dest) {
-      orc_sse_instr_movdqa (p, src, dest);
+      orc_sse_emit_movdqa (p, src, dest);
     }
-    orc_sse_instr_pxor(p, tmp, tmp);
-    orc_sse_instr_punpcklbw (p, tmp, dest);
+    orc_sse_emit_pxor(p, tmp, tmp);
+    orc_sse_emit_punpcklbw (p, tmp, dest);
   }
 }
 
@@ -351,7 +351,7 @@ sse_rule_convssswb (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_packsswb (p, src, dest);
+  orc_sse_emit_packsswb (p, src, dest);
 }
 
 static void
@@ -360,7 +360,7 @@ sse_rule_convsuswb (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_packuswb (p, src, dest);
+  orc_sse_emit_packuswb (p, src, dest);
 }
 
 static void
@@ -372,12 +372,12 @@ sse_rule_convwb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_psllw (p, 8, dest);
-  orc_sse_instr_psrlw (p, 8, dest);
-  orc_sse_instr_packuswb (p, dest, dest);
+  orc_sse_emit_psllw (p, 8, dest);
+  orc_sse_emit_psrlw (p, 8, dest);
+  orc_sse_emit_packuswb (p, dest, dest);
 }
 
 static void
@@ -386,8 +386,8 @@ sse_rule_convswl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_punpcklwd (p, src, dest);
-  orc_sse_instr_psrad (p, 16, dest);
+  orc_sse_emit_punpcklwd (p, src, dest);
+  orc_sse_emit_psrad (p, 16, dest);
 }
 
 static void
@@ -399,14 +399,14 @@ sse_rule_convuwl (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   /* FIXME need a zero register */
   if (0) {
-    orc_sse_instr_punpcklwd (p, src, dest);
-    orc_sse_instr_psrld (p, 16, dest);
+    orc_sse_emit_punpcklwd (p, src, dest);
+    orc_sse_emit_psrld (p, 16, dest);
   } else {
     if (src != dest) {
-      orc_sse_instr_movdqa (p, src, dest);
+      orc_sse_emit_movdqa (p, src, dest);
     }
-    orc_sse_instr_pxor(p, tmp, tmp);
-    orc_sse_instr_punpcklwd (p, tmp, dest);
+    orc_sse_emit_pxor(p, tmp, tmp);
+    orc_sse_emit_punpcklwd (p, tmp, dest);
   }
 }
 
@@ -419,12 +419,12 @@ sse_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pslld (p, 16, dest);
-  orc_sse_instr_psrad (p, 16, dest);
-  orc_sse_instr_packssdw (p, dest, dest);
+  orc_sse_emit_pslld (p, 16, dest);
+  orc_sse_emit_psrad (p, 16, dest);
+  orc_sse_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -433,7 +433,7 @@ sse_rule_convssslw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_packssdw (p, src, dest);
+  orc_sse_emit_packssdw (p, src, dest);
 }
 
 static void
@@ -442,7 +442,7 @@ sse_rule_convsuslw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_packusdw (p, src, dest);
+  orc_sse_emit_packusdw (p, src, dest);
 }
 
 static void
@@ -452,11 +452,11 @@ sse_rule_mulsbw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_punpcklbw (p, src, tmp);
-  orc_sse_instr_psraw (p, 8, tmp);
-  orc_sse_instr_punpcklbw (p, dest, dest);
-  orc_sse_instr_psraw (p, 8, dest);
-  orc_sse_instr_pmullw (p, tmp, dest);
+  orc_sse_emit_punpcklbw (p, src, tmp);
+  orc_sse_emit_psraw (p, 8, tmp);
+  orc_sse_emit_punpcklbw (p, dest, dest);
+  orc_sse_emit_psraw (p, 8, dest);
+  orc_sse_emit_pmullw (p, tmp, dest);
 }
 
 static void
@@ -466,11 +466,11 @@ sse_rule_mulubw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_punpcklbw (p, src, tmp);
-  orc_sse_instr_psrlw (p, 8, tmp);
-  orc_sse_instr_punpcklbw (p, dest, dest);
-  orc_sse_instr_psrlw (p, 8, dest);
-  orc_sse_instr_pmullw (p, tmp, dest);
+  orc_sse_emit_punpcklbw (p, src, tmp);
+  orc_sse_emit_psrlw (p, 8, tmp);
+  orc_sse_emit_punpcklbw (p, dest, dest);
+  orc_sse_emit_psrlw (p, 8, dest);
+  orc_sse_emit_pmullw (p, tmp, dest);
 }
 
 static void
@@ -480,10 +480,10 @@ sse_rule_mulswl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, dest, tmp);
-  orc_sse_instr_pmulhw (p, src, tmp);
-  orc_sse_instr_pmullw (p, src, dest);
-  orc_sse_instr_punpcklwd (p, tmp, dest);
+  orc_sse_emit_movdqa (p, dest, tmp);
+  orc_sse_emit_pmulhw (p, src, tmp);
+  orc_sse_emit_pmullw (p, src, dest);
+  orc_sse_emit_punpcklwd (p, tmp, dest);
 }
 
 static void
@@ -496,12 +496,12 @@ sse_rule_select0lw (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* same as convlw */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pslld (p, 16, dest);
-  orc_sse_instr_psrad (p, 16, dest);
-  orc_sse_instr_packssdw (p, dest, dest);
+  orc_sse_emit_pslld (p, 16, dest);
+  orc_sse_emit_psrad (p, 16, dest);
+  orc_sse_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -513,11 +513,11 @@ sse_rule_select1lw (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_psrad (p, 16, dest);
-  orc_sse_instr_packssdw (p, dest, dest);
+  orc_sse_emit_psrad (p, 16, dest);
+  orc_sse_emit_packssdw (p, dest, dest);
 }
 
 static void
@@ -530,12 +530,12 @@ sse_rule_select0wb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* same as convwb */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_psllw (p, 8, dest);
-  orc_sse_instr_psraw (p, 8, dest);
-  orc_sse_instr_packsswb (p, dest, dest);
+  orc_sse_emit_psllw (p, 8, dest);
+  orc_sse_emit_psraw (p, 8, dest);
+  orc_sse_emit_packsswb (p, dest, dest);
 }
 
 static void
@@ -547,11 +547,11 @@ sse_rule_select1wb (OrcCompiler *p, void *user, OrcInstruction *insn)
   /* FIXME slow */
 
   if (dest != src) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_psraw (p, 8, dest);
-  orc_sse_instr_packsswb (p, dest, dest);
+  orc_sse_emit_psraw (p, 8, dest);
+  orc_sse_emit_packsswb (p, dest, dest);
 }
 
 static void
@@ -560,7 +560,7 @@ sse_rule_mergebw (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[1]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_punpcklbw (p, src, dest);
+  orc_sse_emit_punpcklbw (p, src, dest);
 }
 
 static void
@@ -569,7 +569,7 @@ sse_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[1]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
 
-  orc_sse_instr_punpcklwd (p, src, dest);
+  orc_sse_emit_punpcklwd (p, src, dest);
 }
 
 static void
@@ -584,9 +584,9 @@ sse_emit_load_mask (OrcCompiler *p, unsigned int mask1, unsigned int mask2)
   orc_sse_emit_pshufd (p, 0, tmp, tmp);
   orc_x86_emit_mov_imm_reg (p, 4, mask2, gptmp);
   orc_x86_emit_mov_reg_sse (p, gptmp, tmp2);
-  orc_sse_instr_punpcklbw (p, tmp2, tmp2);
-  orc_sse_instr_punpcklwd (p, tmp2, tmp2);
-  orc_sse_instr_paddb (p, tmp2, tmp);
+  orc_sse_emit_punpcklbw (p, tmp2, tmp2);
+  orc_sse_emit_punpcklwd (p, tmp2, tmp2);
+  orc_sse_emit_paddb (p, tmp2, tmp);
 }
 
 static void
@@ -595,16 +595,16 @@ sse_rule_select0lw_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x05040100, 0x08000800);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 static void
@@ -613,16 +613,16 @@ sse_rule_select1lw_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x07060302, 0x08000800);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 static void
@@ -631,16 +631,16 @@ sse_rule_select0wb_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x06040200, 0x08000800);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 static void
@@ -649,16 +649,16 @@ sse_rule_select1wb_sse3 (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x07050301, 0x08000800);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
 
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 /* slow rules */
@@ -669,15 +669,15 @@ sse_rule_swapw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x02030001, 0x0c080400);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 static void
@@ -686,15 +686,15 @@ sse_rule_swapl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int src = p->vars[insn->src_args[0]].alloc;
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
-  
+
   /* FIXME slow */
 
   sse_emit_load_mask (p, 0x00010203, 0x0c080400);
 
   if (src != dest) {
-    orc_sse_instr_movdqa (p, src, dest);
+    orc_sse_emit_movdqa (p, src, dest);
   }
-  orc_sse_instr_pshufb (p, tmp, dest);
+  orc_sse_emit_pshufb (p, tmp, dest);
 }
 
 static void
@@ -708,11 +708,11 @@ sse_rule_maxuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   orc_x86_emit_mov_imm_reg (p, 4, 0x80008000, gptmp);
   orc_x86_emit_mov_reg_sse (p, gptmp, tmp);
   orc_sse_emit_pshufd (p, 0, tmp, tmp);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
-  orc_sse_instr_pmaxsw (p, src, dest);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
+  orc_sse_emit_pmaxsw (p, src, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 static void
@@ -724,11 +724,11 @@ sse_rule_minuw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_sse_emit_loadiw (p, tmp, 0x8000);
 
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
-  orc_sse_instr_pminsw (p, src, dest);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
+  orc_sse_emit_pminsw (p, src, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 static void
@@ -740,11 +740,11 @@ sse_rule_avgsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_sse_emit_loadib (p, tmp, 0x80);
 
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
-  orc_sse_instr_pavgb (p, src, dest);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
+  orc_sse_emit_pavgb (p, src, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 static void
@@ -756,11 +756,11 @@ sse_rule_avgsw_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
 
   orc_sse_emit_loadiw (p, tmp, 0x8000);
 
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
-  orc_sse_instr_pavgw (p, src, dest);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
+  orc_sse_emit_pavgw (p, src, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 static void
@@ -770,11 +770,11 @@ sse_rule_maxsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, dest, tmp);
-  orc_sse_instr_pcmpgtb (p, src, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, dest, tmp);
+  orc_sse_emit_pcmpgtb (p, src, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 }
 
 static void
@@ -784,11 +784,11 @@ sse_rule_minsb_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, src, tmp);
-  orc_sse_instr_pcmpgtb (p, dest, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, src, tmp);
+  orc_sse_emit_pcmpgtb (p, dest, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 }
 
 static void
@@ -798,11 +798,11 @@ sse_rule_maxsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, dest, tmp);
-  orc_sse_instr_pcmpgtd (p, src, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, dest, tmp);
+  orc_sse_emit_pcmpgtd (p, src, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 }
 
 static void
@@ -812,11 +812,11 @@ sse_rule_minsl_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int dest = p->vars[insn->dest_args[0]].alloc;
   int tmp = p->tmpreg;
 
-  orc_sse_instr_movdqa (p, src, tmp);
-  orc_sse_instr_pcmpgtd (p, dest, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, src, tmp);
+  orc_sse_emit_pcmpgtd (p, dest, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 }
 
 static void
@@ -827,18 +827,18 @@ sse_rule_maxul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int tmp = p->tmpreg;
 
   orc_sse_emit_loadil (p, tmp, 0x80000000);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 
-  orc_sse_instr_movdqa (p, dest, tmp);
-  orc_sse_instr_pcmpgtd (p, src, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, dest, tmp);
+  orc_sse_emit_pcmpgtd (p, src, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 
   orc_sse_emit_loadil (p, tmp, 0x80000000);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 static void
@@ -849,18 +849,18 @@ sse_rule_minul_slow (OrcCompiler *p, void *user, OrcInstruction *insn)
   int tmp = p->tmpreg;
 
   orc_sse_emit_loadil (p, tmp, 0x80000000);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 
-  orc_sse_instr_movdqa (p, src, tmp);
-  orc_sse_instr_pcmpgtd (p, dest, tmp);
-  orc_sse_instr_pand (p, tmp, dest);
-  orc_sse_instr_pandn (p, src, tmp);
-  orc_sse_instr_por (p, tmp, dest);
+  orc_sse_emit_movdqa (p, src, tmp);
+  orc_sse_emit_pcmpgtd (p, dest, tmp);
+  orc_sse_emit_pand (p, tmp, dest);
+  orc_sse_emit_pandn (p, src, tmp);
+  orc_sse_emit_por (p, tmp, dest);
 
   orc_sse_emit_loadil (p, tmp, 0x80000000);
-  orc_sse_instr_pxor(p, tmp, src);
-  orc_sse_instr_pxor(p, tmp, dest);
+  orc_sse_emit_pxor(p, tmp, src);
+  orc_sse_emit_pxor(p, tmp, dest);
 }
 
 
index 771153c..15b93b6 100644 (file)
@@ -72,137 +72,133 @@ unsigned int orc_sse_get_cpu_flags (void);
 /* SSE instructions */
 
 /* SSE2 instructions */
-#define orc_sse_instr_punpcklbw(p,a,b)  orc_sse_emit_660f (p, "punpcklbw", 0x60, a, b)
-#define orc_sse_instr_punpcklwd(p,a,b)  orc_sse_emit_660f (p, "punpcklwd", 0x61, a, b)
-#define orc_sse_instr_punpckldq(p,a,b)  orc_sse_emit_660f (p, "punpckldq", 0x62, a, b)
-#define orc_sse_instr_packsswb(p,a,b)   orc_sse_emit_660f (p, "packsswb", 0x63, a, b)
-#define orc_sse_instr_pcmpgtb(p,a,b)    orc_sse_emit_660f (p, "pcmpgtb", 0x64, a, b)
-#define orc_sse_instr_pcmpgtw(p,a,b)    orc_sse_emit_660f (p, "pcmpgtw", 0x65, a, b)
-#define orc_sse_instr_pcmpgtd(p,a,b)    orc_sse_emit_660f (p, "pcmpgtd", 0x66, a, b)
-#define orc_sse_instr_packuswb(p,a,b)   orc_sse_emit_660f (p, "packuswb", 0x67, a, b)
-#define orc_sse_instr_punpckhbw(p,a,b)  orc_sse_emit_660f (p, "punpckhbw", 0x68, a, b)
-#define orc_sse_instr_punpckhwd(p,a,b)  orc_sse_emit_660f (p, "punpckhwd", 0x69, a, b)
-#define orc_sse_instr_punpckhdq(p,a,b)  orc_sse_emit_660f (p, "punpckhdq", 0x6a, a, b)
-#define orc_sse_instr_packssdw(p,a,b)   orc_sse_emit_660f (p, "packssdw", 0x6b, a, b)
-#define orc_sse_instr_punpcklqdq(p,a,b) orc_sse_emit_660f (p, "punpcklqdq", 0x6c, a, b)
-#define orc_sse_instr_punpckhqdq(p,a,b) orc_sse_emit_660f (p, "punpckhqdq", 0x6d, a, b)
-
-#define orc_sse_instr_movdqa(p,a,b)     orc_sse_emit_660f (p, "movdqa", 0x6f, a, b)
-
-#define orc_sse_instr_pshufd(p,s,a,b)   orc_sse_emit_pshufd (p, s, a, b)
-#define orc_sse_instr_pshufhw(p,s,a,b)  orc_sse_emit_pshufhw (p, s, a, b)
-#define orc_sse_instr_pshuflw(p,s,a,b)  orc_sse_emit_pshuflw (p, s, a, b)
-
-#define orc_sse_instr_psraw(p,a,b)      orc_sse_emit_shiftimm (p, "psraw", 0x71, 4, a, b)
-#define orc_sse_instr_psrlw(p,a,b)      orc_sse_emit_shiftimm (p, "psrlw", 0x71, 2, a, b)
-#define orc_sse_instr_psllw(p,a,b)      orc_sse_emit_shiftimm (p, "psllw", 0x71, 6, a, b)
-#define orc_sse_instr_psrad(p,a,b)      orc_sse_emit_shiftimm (p, "psrad", 0x72, 4, a, b)
-#define orc_sse_instr_psrld(p,a,b)      orc_sse_emit_shiftimm (p, "psrld", 0x72, 2, a, b)
-#define orc_sse_instr_pslld(p,a,b)      orc_sse_emit_shiftimm (p, "pslld", 0x72, 6, a, b)
-#define orc_sse_instr_psrlq(p,a,b)      orc_sse_emit_shiftimm (p, "psrlq", 0x73, 2, a, b)
-#define orc_sse_instr_psllq(p,a,b)      orc_sse_emit_shiftimm (p, "psllq", 0x73, 6, a, b)
-#define orc_sse_instr_psrldq(p,a,b)     orc_sse_emit_shiftimm (p, "psrldq", 0x73, 3, a, b)
-#define orc_sse_instr_pslldq(p,a,b)     orc_sse_emit_shiftimm (p, "pslldq", 0x73, 7, a, b)
-
-#define orc_sse_instr_pcmpeqb(p,a,b)    orc_sse_emit_660f (p, "pcmpeqb", 0x74, a, b)
-#define orc_sse_instr_pcmpeqw(p,a,b)    orc_sse_emit_660f (p, "pcmpeqw", 0x75, a, b)
-#define orc_sse_instr_pcmpeqd(p,a,b)    orc_sse_emit_660f (p, "pcmpeqd", 0x76, a, b)
-
-#define orc_sse_instr_pinsrw(p,a,b)     orc_sse_emit_660f (p, "pinsrw", 0xc4, a, b)
-#define orc_sse_instr_pextrw(p,a,b)     orc_sse_emit_660f (p, "pextrw", 0xc5, a, b)
-
-#define orc_sse_instr_paddq(p,a,b)      orc_sse_emit_660f (p, "paddq", 0xd4, a, b)
-#define orc_sse_instr_pmullw(p,a,b)     orc_sse_emit_660f (p, "pmullw", 0xd5, a, b)
-
-#define orc_sse_instr_psubusb(p,a,b)    orc_sse_emit_660f (p, "psubusb", 0xd8, a, b)
-#define orc_sse_instr_psubusw(p,a,b)    orc_sse_emit_660f (p, "psubusw", 0xd9, a, b)
-#define orc_sse_instr_pminub(p,a,b)     orc_sse_emit_660f (p, "pminub", 0xda, a, b)
-#define orc_sse_instr_pand(p,a,b)       orc_sse_emit_660f (p, "pand", 0xdb, a, b)
-#define orc_sse_instr_paddusb(p,a,b)    orc_sse_emit_660f (p, "paddusb", 0xdc, a, b)
-#define orc_sse_instr_paddusw(p,a,b)    orc_sse_emit_660f (p, "paddusw", 0xdd, a, b)
-#define orc_sse_instr_pmaxub(p,a,b)     orc_sse_emit_660f (p, "pmaxub", 0xde, a, b)
-#define orc_sse_instr_pandn(p,a,b)      orc_sse_emit_660f (p, "pandn", 0xdf, a, b)
-
-#define orc_sse_instr_pavgb(p,a,b)      orc_sse_emit_660f (p, "pavgb", 0xe0, a, b)
-#define orc_sse_instr_pavgw(p,a,b)      orc_sse_emit_660f (p, "pavgw", 0xe3, a, b)
-
-#define orc_sse_instr_pmulhw(p,a,b)     orc_sse_emit_660f (p, "pmulhw", 0xe5, a, b)
-
-#define orc_sse_instr_psubsb(p,a,b)     orc_sse_emit_660f (p, "psubsb", 0xe8, a, b)
-#define orc_sse_instr_psubsw(p,a,b)     orc_sse_emit_660f (p, "psubsw", 0xe9, a, b)
-#define orc_sse_instr_pminsw(p,a,b)     orc_sse_emit_660f (p, "pminsw", 0xea, a, b)
-#define orc_sse_instr_por(p,a,b)        orc_sse_emit_660f (p, "por", 0xeb, a, b)
-#define orc_sse_instr_paddsb(p,a,b)     orc_sse_emit_660f (p, "paddsb", 0xec, a, b)
-#define orc_sse_instr_paddsw(p,a,b)     orc_sse_emit_660f (p, "paddsw", 0xed, a, b)
-#define orc_sse_instr_pmaxsw(p,a,b)     orc_sse_emit_660f (p, "pmaxsw", 0xee, a, b)
-#define orc_sse_instr_pxor(p,a,b)       orc_sse_emit_660f (p, "pxor", 0xef, a, b)
-
-#define orc_sse_instr_pmuludq(p,a,b)    orc_sse_emit_660f (p, "pmuludq", 0xf4, a, b)
-#define orc_sse_instr_pmaddwd(p,a,b)    orc_sse_emit_660f (p, "pmaddwd", 0xf5, a, b)
-#define orc_sse_instr_psadbw(p,a,b)     orc_sse_emit_660f (p, "psadbw", 0xf6, a, b)
-
-#define orc_sse_instr_psubb(p,a,b)      orc_sse_emit_660f (p, "psubb", 0xf8, a, b)
-#define orc_sse_instr_psubw(p,a,b)      orc_sse_emit_660f (p, "psubw", 0xf9, a, b)
-#define orc_sse_instr_psubd(p,a,b)      orc_sse_emit_660f (p, "psubd", 0xfa, a, b)
-#define orc_sse_instr_psubq(p,a,b)      orc_sse_emit_660f (p, "psubq", 0xfb, a, b)
-#define orc_sse_instr_paddb(p,a,b)      orc_sse_emit_660f (p, "paddb", 0xfc, a, b)
-#define orc_sse_instr_paddw(p,a,b)      orc_sse_emit_660f (p, "paddw", 0xfd, a, b)
-#define orc_sse_instr_paddd(p,a,b)      orc_sse_emit_660f (p, "paddd", 0xfe, a, b)
+#define orc_sse_emit_punpcklbw(p,a,b)  orc_sse_emit_660f (p, "punpcklbw", 0x60, a, b)
+#define orc_sse_emit_punpcklwd(p,a,b)  orc_sse_emit_660f (p, "punpcklwd", 0x61, a, b)
+#define orc_sse_emit_punpckldq(p,a,b)  orc_sse_emit_660f (p, "punpckldq", 0x62, a, b)
+#define orc_sse_emit_packsswb(p,a,b)   orc_sse_emit_660f (p, "packsswb", 0x63, a, b)
+#define orc_sse_emit_pcmpgtb(p,a,b)    orc_sse_emit_660f (p, "pcmpgtb", 0x64, a, b)
+#define orc_sse_emit_pcmpgtw(p,a,b)    orc_sse_emit_660f (p, "pcmpgtw", 0x65, a, b)
+#define orc_sse_emit_pcmpgtd(p,a,b)    orc_sse_emit_660f (p, "pcmpgtd", 0x66, a, b)
+#define orc_sse_emit_packuswb(p,a,b)   orc_sse_emit_660f (p, "packuswb", 0x67, a, b)
+#define orc_sse_emit_punpckhbw(p,a,b)  orc_sse_emit_660f (p, "punpckhbw", 0x68, a, b)
+#define orc_sse_emit_punpckhwd(p,a,b)  orc_sse_emit_660f (p, "punpckhwd", 0x69, a, b)
+#define orc_sse_emit_punpckhdq(p,a,b)  orc_sse_emit_660f (p, "punpckhdq", 0x6a, a, b)
+#define orc_sse_emit_packssdw(p,a,b)   orc_sse_emit_660f (p, "packssdw", 0x6b, a, b)
+#define orc_sse_emit_punpcklqdq(p,a,b) orc_sse_emit_660f (p, "punpcklqdq", 0x6c, a, b)
+#define orc_sse_emit_punpckhqdq(p,a,b) orc_sse_emit_660f (p, "punpckhqdq", 0x6d, a, b)
+
+#define orc_sse_emit_movdqa(p,a,b)     orc_sse_emit_660f (p, "movdqa", 0x6f, a, b)
+
+#define orc_sse_emit_psraw(p,a,b)      orc_sse_emit_shiftimm (p, "psraw", 0x71, 4, a, b)
+#define orc_sse_emit_psrlw(p,a,b)      orc_sse_emit_shiftimm (p, "psrlw", 0x71, 2, a, b)
+#define orc_sse_emit_psllw(p,a,b)      orc_sse_emit_shiftimm (p, "psllw", 0x71, 6, a, b)
+#define orc_sse_emit_psrad(p,a,b)      orc_sse_emit_shiftimm (p, "psrad", 0x72, 4, a, b)
+#define orc_sse_emit_psrld(p,a,b)      orc_sse_emit_shiftimm (p, "psrld", 0x72, 2, a, b)
+#define orc_sse_emit_pslld(p,a,b)      orc_sse_emit_shiftimm (p, "pslld", 0x72, 6, a, b)
+#define orc_sse_emit_psrlq(p,a,b)      orc_sse_emit_shiftimm (p, "psrlq", 0x73, 2, a, b)
+#define orc_sse_emit_psllq(p,a,b)      orc_sse_emit_shiftimm (p, "psllq", 0x73, 6, a, b)
+#define orc_sse_emit_psrldq(p,a,b)     orc_sse_emit_shiftimm (p, "psrldq", 0x73, 3, a, b)
+#define orc_sse_emit_pslldq(p,a,b)     orc_sse_emit_shiftimm (p, "pslldq", 0x73, 7, a, b)
+
+#define orc_sse_emit_pcmpeqb(p,a,b)    orc_sse_emit_660f (p, "pcmpeqb", 0x74, a, b)
+#define orc_sse_emit_pcmpeqw(p,a,b)    orc_sse_emit_660f (p, "pcmpeqw", 0x75, a, b)
+#define orc_sse_emit_pcmpeqd(p,a,b)    orc_sse_emit_660f (p, "pcmpeqd", 0x76, a, b)
+
+#define orc_sse_emit_pinsrw(p,a,b)     orc_sse_emit_660f (p, "pinsrw", 0xc4, a, b)
+#define orc_sse_emit_pextrw(p,a,b)     orc_sse_emit_660f (p, "pextrw", 0xc5, a, b)
+
+#define orc_sse_emit_paddq(p,a,b)      orc_sse_emit_660f (p, "paddq", 0xd4, a, b)
+#define orc_sse_emit_pmullw(p,a,b)     orc_sse_emit_660f (p, "pmullw", 0xd5, a, b)
+
+#define orc_sse_emit_psubusb(p,a,b)    orc_sse_emit_660f (p, "psubusb", 0xd8, a, b)
+#define orc_sse_emit_psubusw(p,a,b)    orc_sse_emit_660f (p, "psubusw", 0xd9, a, b)
+#define orc_sse_emit_pminub(p,a,b)     orc_sse_emit_660f (p, "pminub", 0xda, a, b)
+#define orc_sse_emit_pand(p,a,b)       orc_sse_emit_660f (p, "pand", 0xdb, a, b)
+#define orc_sse_emit_paddusb(p,a,b)    orc_sse_emit_660f (p, "paddusb", 0xdc, a, b)
+#define orc_sse_emit_paddusw(p,a,b)    orc_sse_emit_660f (p, "paddusw", 0xdd, a, b)
+#define orc_sse_emit_pmaxub(p,a,b)     orc_sse_emit_660f (p, "pmaxub", 0xde, a, b)
+#define orc_sse_emit_pandn(p,a,b)      orc_sse_emit_660f (p, "pandn", 0xdf, a, b)
+
+#define orc_sse_emit_pavgb(p,a,b)      orc_sse_emit_660f (p, "pavgb", 0xe0, a, b)
+#define orc_sse_emit_pavgw(p,a,b)      orc_sse_emit_660f (p, "pavgw", 0xe3, a, b)
+
+#define orc_sse_emit_pmulhw(p,a,b)     orc_sse_emit_660f (p, "pmulhw", 0xe5, a, b)
+
+#define orc_sse_emit_psubsb(p,a,b)     orc_sse_emit_660f (p, "psubsb", 0xe8, a, b)
+#define orc_sse_emit_psubsw(p,a,b)     orc_sse_emit_660f (p, "psubsw", 0xe9, a, b)
+#define orc_sse_emit_pminsw(p,a,b)     orc_sse_emit_660f (p, "pminsw", 0xea, a, b)
+#define orc_sse_emit_por(p,a,b)        orc_sse_emit_660f (p, "por", 0xeb, a, b)
+#define orc_sse_emit_paddsb(p,a,b)     orc_sse_emit_660f (p, "paddsb", 0xec, a, b)
+#define orc_sse_emit_paddsw(p,a,b)     orc_sse_emit_660f (p, "paddsw", 0xed, a, b)
+#define orc_sse_emit_pmaxsw(p,a,b)     orc_sse_emit_660f (p, "pmaxsw", 0xee, a, b)
+#define orc_sse_emit_pxor(p,a,b)       orc_sse_emit_660f (p, "pxor", 0xef, a, b)
+
+#define orc_sse_emit_pmuludq(p,a,b)    orc_sse_emit_660f (p, "pmuludq", 0xf4, a, b)
+#define orc_sse_emit_pmaddwd(p,a,b)    orc_sse_emit_660f (p, "pmaddwd", 0xf5, a, b)
+#define orc_sse_emit_psadbw(p,a,b)     orc_sse_emit_660f (p, "psadbw", 0xf6, a, b)
+
+#define orc_sse_emit_psubb(p,a,b)      orc_sse_emit_660f (p, "psubb", 0xf8, a, b)
+#define orc_sse_emit_psubw(p,a,b)      orc_sse_emit_660f (p, "psubw", 0xf9, a, b)
+#define orc_sse_emit_psubd(p,a,b)      orc_sse_emit_660f (p, "psubd", 0xfa, a, b)
+#define orc_sse_emit_psubq(p,a,b)      orc_sse_emit_660f (p, "psubq", 0xfb, a, b)
+#define orc_sse_emit_paddb(p,a,b)      orc_sse_emit_660f (p, "paddb", 0xfc, a, b)
+#define orc_sse_emit_paddw(p,a,b)      orc_sse_emit_660f (p, "paddw", 0xfd, a, b)
+#define orc_sse_emit_paddd(p,a,b)      orc_sse_emit_660f (p, "paddd", 0xfe, a, b)
 
 /* SSE3 instructions */
 
 /* SSSE3 instructions */
-#define orc_sse_instr_pshufb(p,a,b)     orc_sse_emit_660f (p, "pshufb", 0x3800, a, b)
-#define orc_sse_instr_phaddw(p,a,b)     orc_sse_emit_660f (p, "phaddw", 0x3801, a, b)
-#define orc_sse_instr_phaddd(p,a,b)     orc_sse_emit_660f (p, "phaddd", 0x3802, a, b)
-#define orc_sse_instr_phaddsw(p,a,b)    orc_sse_emit_660f (p, "phaddsw", 0x3803, a, b)
-#define orc_sse_instr_pmaddubsw(p,a,b)  orc_sse_emit_660f (p, "pmaddubsw", 0x3804, a, b)
-#define orc_sse_instr_phsubw(p,a,b)     orc_sse_emit_660f (p, "phsubw", 0x3805, a, b)
-#define orc_sse_instr_phsubd(p,a,b)     orc_sse_emit_660f (p, "phsubd", 0x3806, a, b)
-#define orc_sse_instr_phsubsw(p,a,b)    orc_sse_emit_660f (p, "phsubsw", 0x3807, a, b)
-#define orc_sse_instr_psignb(p,a,b)     orc_sse_emit_660f (p, "psignb", 0x3808, a, b)
-#define orc_sse_instr_psignw(p,a,b)     orc_sse_emit_660f (p, "psignw", 0x3809, a, b)
-#define orc_sse_instr_psignd(p,a,b)     orc_sse_emit_660f (p, "psignd", 0x380a, a, b)
-#define orc_sse_instr_pmulhrsw(p,a,b)   orc_sse_emit_660f (p, "pmulhrsw", 0x380b, a, b)
-
-#define orc_sse_instr_pabsb(p,a,b)      orc_sse_emit_660f (p, "pabsb", 0x381c, a, b)
-#define orc_sse_instr_pabsw(p,a,b)      orc_sse_emit_660f (p, "pabsw", 0x381d, a, b)
-#define orc_sse_instr_pabsd(p,a,b)      orc_sse_emit_660f (p, "pabsd", 0x381e, a, b)
+#define orc_sse_emit_pshufb(p,a,b)     orc_sse_emit_660f (p, "pshufb", 0x3800, a, b)
+#define orc_sse_emit_phaddw(p,a,b)     orc_sse_emit_660f (p, "phaddw", 0x3801, a, b)
+#define orc_sse_emit_phaddd(p,a,b)     orc_sse_emit_660f (p, "phaddd", 0x3802, a, b)
+#define orc_sse_emit_phaddsw(p,a,b)    orc_sse_emit_660f (p, "phaddsw", 0x3803, a, b)
+#define orc_sse_emit_pmaddubsw(p,a,b)  orc_sse_emit_660f (p, "pmaddubsw", 0x3804, a, b)
+#define orc_sse_emit_phsubw(p,a,b)     orc_sse_emit_660f (p, "phsubw", 0x3805, a, b)
+#define orc_sse_emit_phsubd(p,a,b)     orc_sse_emit_660f (p, "phsubd", 0x3806, a, b)
+#define orc_sse_emit_phsubsw(p,a,b)    orc_sse_emit_660f (p, "phsubsw", 0x3807, a, b)
+#define orc_sse_emit_psignb(p,a,b)     orc_sse_emit_660f (p, "psignb", 0x3808, a, b)
+#define orc_sse_emit_psignw(p,a,b)     orc_sse_emit_660f (p, "psignw", 0x3809, a, b)
+#define orc_sse_emit_psignd(p,a,b)     orc_sse_emit_660f (p, "psignd", 0x380a, a, b)
+#define orc_sse_emit_pmulhrsw(p,a,b)   orc_sse_emit_660f (p, "pmulhrsw", 0x380b, a, b)
+
+#define orc_sse_emit_pabsb(p,a,b)      orc_sse_emit_660f (p, "pabsb", 0x381c, a, b)
+#define orc_sse_emit_pabsw(p,a,b)      orc_sse_emit_660f (p, "pabsw", 0x381d, a, b)
+#define orc_sse_emit_pabsd(p,a,b)      orc_sse_emit_660f (p, "pabsd", 0x381e, a, b)
 
 /* SSE4.1 instructions */
-#define orc_sse_instr_pmovsxbw(p,a,b)   orc_sse_emit_660f (p, "pmovsxbw", 0x3820, a, b)
-#define orc_sse_instr_pmovsxbd(p,a,b)   orc_sse_emit_660f (p, "pmovsxbd", 0x3821, a, b)
-#define orc_sse_instr_pmovsxbq(p,a,b)   orc_sse_emit_660f (p, "pmovsxbq", 0x3822, a, b)
-#define orc_sse_instr_pmovsxwd(p,a,b)   orc_sse_emit_660f (p, "pmovsxwd", 0x3823, a, b)
-#define orc_sse_instr_pmovsxwq(p,a,b)   orc_sse_emit_660f (p, "pmovsxwq", 0x3824, a, b)
-#define orc_sse_instr_pmovsxdq(p,a,b)   orc_sse_emit_660f (p, "pmovsxdq", 0x3825, a, b)
-
-#define orc_sse_instr_pmuldq(p,a,b)     orc_sse_emit_660f (p, "pmuldq", 0x3828, a, b)
-#define orc_sse_instr_pcmpeqq(p,a,b)    orc_sse_emit_660f (p, "pcmpeqq", 0x3829, a, b)
-
-#define orc_sse_instr_packusdw(p,a,b)   orc_sse_emit_660f (p, "packuswd", 0x382b, a, b)
-
-#define orc_sse_instr_pmovzxbw(p,a,b)   orc_sse_emit_660f (p, "pmovzxbw", 0x3830, a, b)
-#define orc_sse_instr_pmovzxbd(p,a,b)   orc_sse_emit_660f (p, "pmovzxbd", 0x3831, a, b)
-#define orc_sse_instr_pmovzxbq(p,a,b)   orc_sse_emit_660f (p, "pmovzxbq", 0x3832, a, b)
-#define orc_sse_instr_pmovzxwd(p,a,b)   orc_sse_emit_660f (p, "pmovzxwd", 0x3833, a, b)
-#define orc_sse_instr_pmovzxwq(p,a,b)   orc_sse_emit_660f (p, "pmovzxwq", 0x3834, a, b)
-#define orc_sse_instr_pmovzxdq(p,a,b)   orc_sse_emit_660f (p, "pmovzxdq", 0x3835, a, b)
-
-#define orc_sse_instr_pmulld(p,a,b)     orc_sse_emit_660f (p, "pmuldq", 0x3840, a, b)
-#define orc_sse_instr_phminposuw(p,a,b) orc_sse_emit_660f (p, "phminposuw", 0x3841, a, b)
-
-#define orc_sse_instr_pminsb(p,a,b)     orc_sse_emit_660f (p, "pminsb", 0x3838, a, b)
-#define orc_sse_instr_pminsd(p,a,b)     orc_sse_emit_660f (p, "pminsd", 0x3839, a, b)
-#define orc_sse_instr_pminuw(p,a,b)     orc_sse_emit_660f (p, "pminuw", 0x383a, a, b)
-#define orc_sse_instr_pminud(p,a,b)     orc_sse_emit_660f (p, "pminud", 0x383b, a, b)
-#define orc_sse_instr_pmaxsb(p,a,b)     orc_sse_emit_660f (p, "pmaxsb", 0x383c, a, b)
-#define orc_sse_instr_pmaxsd(p,a,b)     orc_sse_emit_660f (p, "pmaxsd", 0x383d, a, b)
-#define orc_sse_instr_pmaxuw(p,a,b)     orc_sse_emit_660f (p, "pmaxuw", 0x383e, a, b)
-#define orc_sse_instr_pmaxud(p,a,b)     orc_sse_emit_660f (p, "pmaxud", 0x383f, a, b)
+#define orc_sse_emit_pmovsxbw(p,a,b)   orc_sse_emit_660f (p, "pmovsxbw", 0x3820, a, b)
+#define orc_sse_emit_pmovsxbd(p,a,b)   orc_sse_emit_660f (p, "pmovsxbd", 0x3821, a, b)
+#define orc_sse_emit_pmovsxbq(p,a,b)   orc_sse_emit_660f (p, "pmovsxbq", 0x3822, a, b)
+#define orc_sse_emit_pmovsxwd(p,a,b)   orc_sse_emit_660f (p, "pmovsxwd", 0x3823, a, b)
+#define orc_sse_emit_pmovsxwq(p,a,b)   orc_sse_emit_660f (p, "pmovsxwq", 0x3824, a, b)
+#define orc_sse_emit_pmovsxdq(p,a,b)   orc_sse_emit_660f (p, "pmovsxdq", 0x3825, a, b)
+
+#define orc_sse_emit_pmuldq(p,a,b)     orc_sse_emit_660f (p, "pmuldq", 0x3828, a, b)
+#define orc_sse_emit_pcmpeqq(p,a,b)    orc_sse_emit_660f (p, "pcmpeqq", 0x3829, a, b)
+
+#define orc_sse_emit_packusdw(p,a,b)   orc_sse_emit_660f (p, "packuswd", 0x382b, a, b)
+
+#define orc_sse_emit_pmovzxbw(p,a,b)   orc_sse_emit_660f (p, "pmovzxbw", 0x3830, a, b)
+#define orc_sse_emit_pmovzxbd(p,a,b)   orc_sse_emit_660f (p, "pmovzxbd", 0x3831, a, b)
+#define orc_sse_emit_pmovzxbq(p,a,b)   orc_sse_emit_660f (p, "pmovzxbq", 0x3832, a, b)
+#define orc_sse_emit_pmovzxwd(p,a,b)   orc_sse_emit_660f (p, "pmovzxwd", 0x3833, a, b)
+#define orc_sse_emit_pmovzxwq(p,a,b)   orc_sse_emit_660f (p, "pmovzxwq", 0x3834, a, b)
+#define orc_sse_emit_pmovzxdq(p,a,b)   orc_sse_emit_660f (p, "pmovzxdq", 0x3835, a, b)
+
+#define orc_sse_emit_pmulld(p,a,b)     orc_sse_emit_660f (p, "pmuldq", 0x3840, a, b)
+#define orc_sse_emit_phminposuw(p,a,b) orc_sse_emit_660f (p, "phminposuw", 0x3841, a, b)
+
+#define orc_sse_emit_pminsb(p,a,b)     orc_sse_emit_660f (p, "pminsb", 0x3838, a, b)
+#define orc_sse_emit_pminsd(p,a,b)     orc_sse_emit_660f (p, "pminsd", 0x3839, a, b)
+#define orc_sse_emit_pminuw(p,a,b)     orc_sse_emit_660f (p, "pminuw", 0x383a, a, b)
+#define orc_sse_emit_pminud(p,a,b)     orc_sse_emit_660f (p, "pminud", 0x383b, a, b)
+#define orc_sse_emit_pmaxsb(p,a,b)     orc_sse_emit_660f (p, "pmaxsb", 0x383c, a, b)
+#define orc_sse_emit_pmaxsd(p,a,b)     orc_sse_emit_660f (p, "pmaxsd", 0x383d, a, b)
+#define orc_sse_emit_pmaxuw(p,a,b)     orc_sse_emit_660f (p, "pmaxuw", 0x383e, a, b)
+#define orc_sse_emit_pmaxud(p,a,b)     orc_sse_emit_660f (p, "pmaxud", 0x383f, a, b)
 
 /* SSE4.2 instructions */
-#define orc_sse_instr_pcmpgtq(p,a,b)    orc_sse_emit_660f (p, "pcmpgtq", 0x3837, a, b)
+#define orc_sse_emit_pcmpgtq(p,a,b)    orc_sse_emit_660f (p, "pcmpgtq", 0x3837, a, b)
 
 #endif