bad register name `%sil'

Matthew Dillon dillon at apollo.backplane.com
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?
:
:Rob

    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.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Bugs mailing list