summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2009-03-31 22:24:21 -0700
committerDavid Schleef <ds@schleef.org>2009-03-31 22:24:21 -0700
commitde0b09d989c50119202dac2b3e90a949c9613c70 (patch)
tree7a834a1646e41a6b45f43d1a90994ee132fd1446
parente8ca2524edf0318aebd4f8a945d19ad4720fb9db (diff)
fix convlw
-rw-r--r--orc/orcrules-sse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/orc/orcrules-sse.c b/orc/orcrules-sse.c
index 5b830df..246615f 100644
--- a/orc/orcrules-sse.c
+++ b/orc/orcrules-sse.c
@@ -576,15 +576,15 @@ sse_rule_convlw (OrcCompiler *p, void *user, OrcInstruction *insn)
x86_emit_modrm_reg (p, p->vars[insn->dest_args[0]].alloc, 6);
*p->codeptr++ = 16;
- ORC_ASM_CODE(p," psrld $16, %%%s\n",
+ ORC_ASM_CODE(p," psrad $16, %%%s\n",
x86_get_regname_sse(p->vars[insn->dest_args[0]].alloc));
*p->codeptr++ = 0x66;
*p->codeptr++ = 0x0f;
*p->codeptr++ = 0x72;
- x86_emit_modrm_reg (p, p->vars[insn->dest_args[0]].alloc, 2);
+ x86_emit_modrm_reg (p, p->vars[insn->dest_args[0]].alloc, 4);
*p->codeptr++ = 16;
- sse_emit_660f38 (p, "packusdw", 0x2b, dest, dest);
+ sse_emit_660f (p, "packssdw", 0x6b, dest, dest);
}
static void