Matthew Dillon wrote: 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. Hrm. It definitely seems odd for gcc to fail in such a way; after all, it's %al, not %axl. Ah, well.