#define orc_mmx_emit_pmuldq(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x3828, a, b)
#define orc_mmx_emit_pcmpeqq(p,a,b) orc_mmx_emit_660f (p, "pcmpeqq", 0x3829, a, b)
-#define orc_mmx_emit_packusdw(p,a,b) orc_mmx_emit_660f (p, "packuswd", 0x382b, a, b)
+#define orc_mmx_emit_packusdw(p,a,b) orc_mmx_emit_660f (p, "packusdw", 0x382b, a, b)
#define orc_mmx_emit_pmovzxbw(p,a,b) orc_mmx_emit_660f (p, "pmovzxbw", 0x3830, a, b)
#define orc_mmx_emit_pmovzxbd(p,a,b) orc_mmx_emit_660f (p, "pmovzxbd", 0x3831, a, b)
int src, int dest)
{
ORC_ASM_CODE(p," pinsrw $%d, %d(%%%s), %%%s\n", imm, offset,
- orc_x86_get_regname(src),
+ orc_x86_get_regname_ptr (p, src),
orc_x86_get_regname_sse(dest));
*p->codeptr++ = 0x66;
orc_x86_emit_rex (p, 0, dest, 0, src);
{
ORC_ASM_CODE(p," pextrw $%d, %%%s, %d(%%%s)\n", imm,
orc_x86_get_regname_sse(src),
- offset, orc_x86_get_regname(dest));
+ offset, orc_x86_get_regname_ptr (p, dest));
*p->codeptr++ = 0x66;
orc_x86_emit_rex (p, 0, src, 0, dest);
*p->codeptr++ = 0x0f;
#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_packusdw(p,a,b) orc_sse_emit_660f (p, "packusdw", 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)
ORC_ASM_CODE(compiler," addl $%d, %d(%%%s)\n", value, offset,
orc_x86_get_regname_ptr(compiler, reg));
} else {
- ORC_ASM_CODE(compiler," add $%d, %d(%%%s)\n", value, offset,
+ ORC_ASM_CODE(compiler," addq $%d, %d(%%%s)\n", value, offset,
orc_x86_get_regname_ptr(compiler, reg));
}
orc_x86_emit_modrm_memoffset (compiler, 0, offset, reg);
*compiler->codeptr++ = (value & 0xff);
*compiler->codeptr++ = ((value>>8) & 0xff);
- if (size == 4) {
+ if (size == 4 || size == 8) {
*compiler->codeptr++ = ((value>>16) & 0xff);
*compiler->codeptr++ = ((value>>24) & 0xff);
}
} else if (size == 4) {
ORC_ASM_CODE(compiler," addl $%d, %%%s\n", value, orc_x86_get_regname(reg));
} else {
- ORC_ASM_CODE(compiler," add $%d, %%%s\n", value, orc_x86_get_regname_64(reg));
+ ORC_ASM_CODE(compiler," addq $%d, %%%s\n", value, orc_x86_get_regname_64(reg));
}
orc_x86_emit_rex(compiler, size, 0, 0, reg);
orc_x86_emit_modrm_reg (compiler, reg, 0);
*compiler->codeptr++ = (value & 0xff);
*compiler->codeptr++ = ((value>>8) & 0xff);
- if (size == 4) {
+ if (size == 4 || size == 8) {
*compiler->codeptr++ = ((value>>16) & 0xff);
*compiler->codeptr++ = ((value>>24) & 0xff);
}