Signed-off-by: Richard Henderson <r...@twiddle.net>
---
 tcg/s390/tcg-target.c |   10 ++--------
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index f85063e..97ac66d 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -1028,16 +1028,10 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode 
opc,
         break;
 
     case INDEX_op_neg_i32:
-        /* FIXME: optimize args[0] != args[1] case */
-        tcg_out_insn(s, RR, LR, 13, args[1]);
-        tcg_out_movi(s, TCG_TYPE_I32, args[0], 0);
-        tcg_out_insn(s, RR, SR, args[0], 13);
+        tcg_out_insn(s, RR, LCR, args[0], args[1]);
         break;
     case INDEX_op_neg_i64:
-        /* FIXME: optimize args[0] != args[1] case */
-        tcg_out_mov(s, TCG_REG_R13, args[1]);
-        tcg_out_movi(s, TCG_TYPE_I64, args[0], 0);
-        tcg_out_insn(s, RRE, SGR, args[0], TCG_REG_R13);
+        tcg_out_insn(s, RRE, LCGR, args[0], args[1]);
         break;
 
     case INDEX_op_mul_i32:
-- 
1.7.0.1


Reply via email to