diff options
author | David Schleef <ds@schleef.org> | 2009-03-31 22:24:21 -0700 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2009-03-31 22:24:21 -0700 |
commit | de0b09d989c50119202dac2b3e90a949c9613c70 (patch) | |
tree | 7a834a1646e41a6b45f43d1a90994ee132fd1446 | |
parent | e8ca2524edf0318aebd4f8a945d19ad4720fb9db (diff) |
fix convlw
-rw-r--r-- | orc/orcrules-sse.c | 6 |
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 |