dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] libjit ChangeLog jit/jit-reg-alloc.c


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ChangeLog jit/jit-reg-alloc.c
Date: Sun, 28 Jan 2007 20:14:57 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Changes by:     Aleksey Demakov <avd>   07/01/28 20:14:57

Modified files:
        .              : ChangeLog 
        jit            : jit-reg-alloc.c 

Log message:
        fix bug with input register thrashing introduced 2006-12-30

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.298&r2=1.299
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-reg-alloc.c?cvsroot=dotgnu-pnet&r1=1.51&r2=1.52

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.298
retrieving revision 1.299
diff -u -b -r1.298 -r1.299
--- ChangeLog   28 Jan 2007 17:23:32 -0000      1.298
+++ ChangeLog   28 Jan 2007 20:14:57 -0000      1.299
@@ -1,7 +1,8 @@
 2007-01-28  Aleksey Demakov  <address@hidden>
 
-       * jit/jit-reg-alloc.c (_jit_regs_gen): fix recently introduced bug
-       with loading registers for ternary ops.
+       * jit/jit-reg-alloc.c (_jit_regs_gen, set_regdesc_flags): fix bugs
+       introduced 2006-12-30 with loading registers for ternary ops and
+       handling input register thrash.
 
 2007-01-26  Aleksey Demakov  <address@hidden>
 

Index: jit/jit-reg-alloc.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-reg-alloc.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- jit/jit-reg-alloc.c 28 Jan 2007 17:23:32 -0000      1.51
+++ jit/jit-reg-alloc.c 28 Jan 2007 20:14:57 -0000      1.52
@@ -689,7 +689,6 @@
                        {
                                reg = -1;
                                other_reg = -1;
-                               desc->store = 1;
                        }
                }
 
@@ -726,9 +725,8 @@
                        clobber_input = ((clobber & CLOBBER_INPUT_VALUE) != 0);
                }
 
-               /* See if the input value needs to be saved before the
-                  instruction and if it stays or not in the register
-                  after the instruction. */
+               /* See if the input value needs to be stored before the
+                  instruction and if it stays in the register after it. */
                if(desc->value->is_constant)
                {
                        desc->kill = 1;
@@ -744,6 +742,12 @@
                        desc->kill = 1;
                }
 
+               /* Store the value if it is going to be thrashed by another 
one. */
+               if(desc->thrash)
+               {
+                       desc->store = 1;
+               }
+
 #ifdef JIT_REG_STACK
                /* Count stack registers. */
                if(IS_STACK_REG(desc->reg))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]