On Fri, Mar 27, 2009 at 04:31:33PM -0400, Michael wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello, > > On Mar 27, 2009, at 9:07 AM, Izumi Tsutsui wrote: > > >a...@netbsd.org wrote: > > > >>On Fri, Mar 27, 2009 at 12:25:41PM +0000, Izumi Tsutsui wrote: > >> > >>>Log Message: > >>>Use bus_space(9) to access registers. SETREG() macro using bogus > >>>casts > >>>against packed structures doesn't work on gcc4. (no character on > >>>screen) > >>>See also: > >>>http://mail-index.NetBSD.org/port-sparc/2003/11/11/0002.html > >> > >>It has been a long time, but from what I remember SETREG() was an > >>invention > >>of mine to work around either a compiler or code bug. Maybe > >>bus_space does > >>the same. > > > >I'm not sure if it's a compiler bug or not, but SETREG() doesn't work > >on gcc4 while it's confirmed working on gcc3. > >(as the noted in the above mail, it looks generating byte access code) > > > >Removing __packed might also help, but bus_space(9) just works > >and it's a right way to go, I think. > > I strongly agree - I've been trying to get our zx driver to work for a > while but got sidetracked by other stuff ( mostly sgimips-related ) - > thanks for doing this. Writing an accelerated Xorg driver is next on > my todo list ( after adding wscons support to zx )
It worked for the console when I checked it in (haven't touched it since). I think I remember now what SETREG() might have been about. The compiler was generating sub-word writes, or something along those lines.