summaryrefslogtreecommitdiff
path: root/tcg/tcg-op.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2010-03-19 12:44:47 -0700
committerAurelien Jarno <aurelien@aurel32.net>2010-03-26 21:29:12 +0100
commita10f9f4f0c947ad0aa8283b62ea012b67f883523 (patch)
treef0e62b71969638f37e1ef0d110b1f20021cdf4b3 /tcg/tcg-op.h
parentc02244a5088eaa7d8ff69f51fba8b67da094f604 (diff)
downloadqemu-a10f9f4f0c947ad0aa8283b62ea012b67f883523.tar.gz
tcg: Use not_i32 to implement not_i64.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'tcg/tcg-op.h')
-rw-r--r--tcg/tcg-op.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
index e2873ffc17..f15c80351b 100644
--- a/tcg/tcg-op.h
+++ b/tcg/tcg-op.h
@@ -1653,6 +1653,9 @@ static inline void tcg_gen_not_i64(TCGv_i64 ret, TCGv_i64 arg)
{
#ifdef TCG_TARGET_HAS_not_i64
tcg_gen_op2_i64(INDEX_op_not_i64, ret, arg);
+#elif defined(TCG_TARGET_HAS_not_i32) && TCG_TARGET_REG_BITS == 32
+ tcg_gen_not_i32(TCGV_LOW(ret), TCGV_LOW(arg));
+ tcg_gen_not_i32(TCGV_HIGH(ret), TCGV_HIGH(arg));
#else
tcg_gen_xori_i64(ret, arg, -1);
#endif