_fastcall
ffsl(x)
unsigned long x;
{
	register int ret;
	register unsigned short sx;

	if ((sx = (unsigned short)x) == 0) {
		ret = 17;
		sx = (unsigned short)(x >> 16);
	} else
		ret = 1;
	if (sx == 0)
		return 0;
	if ((unsigned char)sx == 0) {
		ret += 8;
		sx = (unsigned char)(sx >> 8);
	}
	while ((sx & 1) == 0) {
		sx >>= 1;
		ret++;
	}
	return ret;
}
