bad register name `%sil'

Matthew Dillon dillon at
Fri Feb 13 10:20:34 PST 2004

:YONETANI Tomokazu wrote:
:> Hello.
:> Is our gcc3 known to produce a bad code when '-O -march=pentium4'
:> are specified? This is from buildkernel(sorry, very long lines):
:> cc -c -O -pipe -march=pentium4 -Wall -Wredundant-decls -Wnested-externs
:> -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
:> -Wcast-qual  -fformat-extensions -ansi -g -nostdinc -I.
:matt, how do you feel about this?

    It's a bug in our inline assembly.  %sil is not an AMD64 register per
    say, it's simply GCC trying to access the 'low byte' of the %si
    register.  This is only legal to do on %ax, %bx, %cx, or %dx.  So 
    FreeBSD's solution is the correct one.

    I'll commit a fix once I check compatibility with some other things
    FreeBSD has done in 5.x that I might want to also use.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Bugs mailing list