Subject: Re: CVS commit: src/sys/lib/libsa
To: Tom Spindler <dogcow@netbsd.org>
From: David Laight <david@l8s.co.uk>
List: source-changes
Date: 12/03/2006 18:25:04
On Sat, Dec 02, 2006 at 12:38:22AM +0000, Tom Spindler wrote:
> 
> Log Message:
> make bootxx_msdos fit in 8k again; thanks, __internal_memset_, for spilling
> registers all over the place.

I've found out which change make the code bloat...
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/fs/msdosfs/bpb.h.diff?r1=1.4&r2=1.5&f=h

It seems gcc generates better code for:
	a[0] + (a[1] << 8) + (a[2] << 16) + (a[3] << 24)
than for:
	a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24)

However the code really needs:
	#if (BYTE_ORDER == LITTLE_ENDIAN) && defined(UNALIGNED_ACCESS)
to be true...

	David

-- 
David Laight: david@l8s.co.uk