[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [6798] tcg: optimize nor(X, Y, Y), used on PPC for not(X, Y
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [6798] tcg: optimize nor(X, Y, Y), used on PPC for not(X, Y) |
Date: |
Mon, 09 Mar 2009 22:35:23 +0000 |
Revision: 6798
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6798
Author: aurel32
Date: 2009-03-09 22:35:22 +0000 (Mon, 09 Mar 2009)
Log Message:
-----------
tcg: optimize nor(X, Y, Y), used on PPC for not(X, Y)
Signed-off-by: Aurelien Jarno <address@hidden>
Modified Paths:
--------------
trunk/tcg/tcg-op.h
Modified: trunk/tcg/tcg-op.h
===================================================================
--- trunk/tcg/tcg-op.h 2009-03-09 22:35:13 UTC (rev 6797)
+++ trunk/tcg/tcg-op.h 2009-03-09 22:35:22 UTC (rev 6798)
@@ -1545,20 +1545,28 @@
static inline void tcg_gen_nor_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2)
{
- TCGv_i32 t0;
- t0 = tcg_temp_new_i32();
- tcg_gen_or_i32(t0, arg1, arg2);
- tcg_gen_not_i32(ret, t0);
- tcg_temp_free_i32(t0);
+ if (GET_TCGV_I32(arg1) != GET_TCGV_I32(arg2)) {
+ TCGv_i32 t0;
+ t0 = tcg_temp_new_i32();
+ tcg_gen_or_i32(t0, arg1, arg2);
+ tcg_gen_not_i32(ret, t0);
+ tcg_temp_free_i32(t0);
+ } else {
+ tcg_gen_not_i32(ret, arg1);
+ }
}
static inline void tcg_gen_nor_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2)
{
- TCGv_i64 t0;
- t0 = tcg_temp_new_i64();
- tcg_gen_or_i64(t0, arg1, arg2);
- tcg_gen_not_i64(ret, t0);
- tcg_temp_free_i64(t0);
+ if (GET_TCGV_I64(arg1) != GET_TCGV_I64(arg2)) {
+ TCGv_i64 t0;
+ t0 = tcg_temp_new_i64();
+ tcg_gen_or_i64(t0, arg1, arg2);
+ tcg_gen_not_i64(ret, t0);
+ tcg_temp_free_i64(t0);
+ } else {
+ tcg_gen_not_i64(ret, arg1);
+ }
}
static inline void tcg_gen_orc_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2)
- [Qemu-devel] [6798] tcg: optimize nor(X, Y, Y), used on PPC for not(X, Y),
Aurelien Jarno <=