NetBSD-Bugs archive

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

Re: kern/38956



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