summaryrefslogtreecommitdiffstats
path: root/target-i386/ops_sse.h
diff options
context:
space:
mode:
authorAurelien Jarno2013-03-26 19:56:01 +0100
committerAurelien Jarno2013-04-01 18:49:15 +0200
commitda5156cd9a62274839d6fa685cc52614886cc722 (patch)
treee69ff981c7d3eedd7b93acc4aea3c99afdc8a3e7 /target-i386/ops_sse.h
parenttarget-i386: SSE4.1: fix pinsrb instruction (diff)
downloadqemu-da5156cd9a62274839d6fa685cc52614886cc722.tar.gz
qemu-da5156cd9a62274839d6fa685cc52614886cc722.tar.xz
qemu-da5156cd9a62274839d6fa685cc52614886cc722.zip
target-i386: SSE4.2: fix pcmpgtq instruction
The "Intel 64 and IA-32 Architectures Software Developer's Manual" (at least recent versions) clearly says that the comparison is signed. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'target-i386/ops_sse.h')
-rw-r--r--target-i386/ops_sse.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/target-i386/ops_sse.h b/target-i386/ops_sse.h
index cad9d758de..0136df9345 100644
--- a/target-i386/ops_sse.h
+++ b/target-i386/ops_sse.h
@@ -1933,8 +1933,7 @@ void glue(helper_mpsadbw, SUFFIX)(CPUX86State *env, Reg *d, Reg *s,
}
/* SSE4.2 op helpers */
-/* it's unclear whether signed or unsigned */
-#define FCMPGTQ(d, s) (d > s ? -1 : 0)
+#define FCMPGTQ(d, s) ((int64_t)d > (int64_t)s ? -1 : 0)
SSE_HELPER_Q(helper_pcmpgtq, FCMPGTQ)
static inline int pcmp_elen(CPUX86State *env, int reg, uint32_t ctrl)