[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: |
Fri, 18 Aug 2006 18:14:28 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: libjit
Changes by: Aleksey Demakov <avd> 06/08/18 18:14:28
Modified files:
. : ChangeLog
jit : jit-reg-alloc.c
Log message:
fix a problem with the clobber flag being ignored
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.249&r2=1.250
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-reg-alloc.c?cvsroot=dotgnu-pnet&r1=1.37&r2=1.38
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.249
retrieving revision 1.250
diff -u -b -r1.249 -r1.250
--- ChangeLog 15 Aug 2006 01:08:59 -0000 1.249
+++ ChangeLog 18 Aug 2006 18:14:27 -0000 1.250
@@ -1,3 +1,9 @@
+2006-08-19 Aleksey Demakov <address@hidden>
+
+ * jit/jit-reg-alloc.c (set_regdesc_flags): fix a problem with the
+ clobber flag being ignored. The problem was introduced by the patch
+ from 2006-06-17.
+
2006-08-15 Thomas Cort <address@hidden>
* jit/jit-rules-alpha.c jit/jit-rules-alpha.h jit/jit-rules-alpha.ins
Add a TODO() macro to print unimplemented warnings. Fix some
Index: jit/jit-reg-alloc.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-reg-alloc.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- jit/jit-reg-alloc.c 29 Jul 2006 15:11:47 -0000 1.37
+++ jit/jit-reg-alloc.c 18 Aug 2006 18:14:27 -0000 1.38
@@ -2165,8 +2165,8 @@
set_regdesc_flags(jit_gencode_t gen, _jit_regs_t *regs, int index)
{
_jit_regdesc_t *desc;
- int reg, other_reg;
- int clobber, stack_start;
+ int reg, other_reg, stack_start;
+ int clobber, clobber_input;
#ifdef JIT_REG_DEBUG
printf("set_regdesc_flags(index = %d)\n", index);
@@ -2199,6 +2199,18 @@
/* See if the value clobbers the register it is assigned to. */
clobber = clobbers_register(gen, regs, index, desc->reg,
desc->other_reg);
+ if(jit_reg_is_used(regs->clobber, desc->reg))
+ {
+ clobber_input = 1;
+ }
+ else if(desc->other_reg >= 0 && jit_reg_is_used(regs->clobber,
desc->other_reg))
+ {
+ clobber_input = 1;
+ }
+ else
+ {
+ clobber_input = (clobber & CLOBBER_INPUT_VALUE) != 0;
+ }
if((clobber & CLOBBER_REG) != 0)
{
jit_reg_set_used(regs->clobber, desc->reg);
@@ -2235,7 +2247,7 @@
{
if(desc->value != regs->descs[0].value)
{
- clobber |= CLOBBER_INPUT_VALUE;
+ clobber_input = 1;
}
}
}
@@ -2305,7 +2317,7 @@
{
if(desc->used)
{
- if(!desc->copy && (clobber &
CLOBBER_INPUT_VALUE) != 0)
+ if(!desc->copy && clobber_input)
{
desc->save = 1;
desc->kill = 1;
@@ -2324,7 +2336,7 @@
{
if(desc->used)
{
- if((clobber & CLOBBER_INPUT_VALUE) != 0)
+ if(clobber_input)
{
desc->kill = 1;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] libjit ChangeLog jit/jit-reg-alloc.c,
Aleksey Demakov <=