NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/38956
The following reply was made to PR kern/38956; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost,
netbsd-bugs%NetBSD.org@localhost,
martin%duskware.de@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/38956
Date: Tue, 24 Jun 2008 02:08:20 +0900
rosenfeld%grumpf.hope-2000.org@localhost wrote:
> I tried the proposed fix for m68k and it seems to work for vax, too.
Hmm, interesting. On m68k with -fgcse, the following code
in rb_tree_insert_node() around line 1298 is compiled badly:
---
/*
* Initialize the node and insert as a leaf into the tree.
*/
self->rb_parent = parent;
self->rb_position = position;
RB_MARK_MOVED(self);
---
830: 142b 000c moveb %a3@(12),%d2 # d2 = self->rb_info
834: 2748 0008 movel %a0,%a3@(8) # self->rb_parent = parent
838: efeb 3001 000c bfins %d3,%a3@(12),0,1 # self->rb_position = position
83e: 1602 moveb %d2,%d3 # d3 = d2
840: 0003 0008 orib #8,%d3 # RB_MARK_MOVED(d3)
844: 1743 000c moveb %d3,%a3@(12) # rb_position is lost here
---
With -fno-gcse (or -fno-gcse-lm):
---
82a: 2748 0008 movel %a0,%a3@(8) # self->rb_parent = parent
82e: efeb 2001 000c bfins %d2,%a3@(12),0,1 # self->rb_posision = position
834: 142b 000c moveb %a3@(12),%d2 # d2 = self->rb_info
838: 1602 moveb %d2,%d3 # d3 = d2
83a: 0003 0008 orib #8,%d3 # RB_MARK_MOVED(d3)
83e: 1743 000c moveb %d3,%a3@(12) # self->rb_info = d3
---
I'm not sure if this is MI gcc issue or not.
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index