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