Do the memset once.  Don't reset_temp before doing so.

Signed-off-by: Richard Henderson <r...@twiddle.net>
---
 tcg/optimize.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tcg/optimize.c b/tcg/optimize.c
index c1881fa..dfac877 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -771,22 +771,22 @@ static TCGArg *tcg_constant_folding(TCGContext *s, 
uint16_t *tcg_opc_ptr,
             tmp = do_constant_folding_cond(op, args[0], args[1], args[2]);
             if (tmp != 2) {
                 if (tmp) {
-                    memset(temps, 0, nb_temps * sizeof(struct tcg_temp_info));
                     gen_opc_buf[op_index] = INDEX_op_br;
                     gen_args[0] = args[3];
                     gen_args += 1;
                 } else {
                     gen_opc_buf[op_index] = INDEX_op_nop;
+                    args += 4;
+                    break;
                 }
             } else {
-                memset(temps, 0, nb_temps * sizeof(struct tcg_temp_info));
-                reset_temp(args[0]);
                 gen_args[0] = args[0];
                 gen_args[1] = args[1];
                 gen_args[2] = args[2];
                 gen_args[3] = args[3];
                 gen_args += 4;
             }
+            memset(temps, 0, nb_temps * sizeof(struct tcg_temp_info));
             args += 4;
             break;
         CASE_OP_32_64(movcond):
-- 
1.7.11.4


Reply via email to