Ben Dooks wrote: > as well as that, it looks like the /4 in readsl() is trying to round > up, probably changing it to > > readsl(buf, data, len >> 2); > > is a much better idea.
I'll have a look at this in a bit. I think what's going on with the /4 is that gcc tries to handle the case that the (signed) length is negative. Turning it into >> 2 indeed shortens the code by 12 bytes. Good. When I saw all these divisions, I felt something in my stomach contract a little. Now you explained why :-) - Werner
