[Top][All Lists]
[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))