Paolo Bonzini <[EMAIL PROTECTED]> writes: >> I suspect the rotation part is the sarl+sall and or. Either we could >> experiment with changing the code, or we could try to make gcc detect >> that this code actually is a rotate... Possibly gcc already does that >> right thing, with today's CPU architectures it can be difficult to know >> which ops are the most efficient choice. > > I don't know, GCC already has plenty of rotate-detection code. It might > be that for 16-bit it does not like to give a rotate to your machine. > Usually, trying with -mtune=i386 is a way to see if it has taken its > decision based on the hardware.
I checked with 32-bit rotates, and then I do see it use the proper instructions. Couldn't get it to use them for 16-bit rotates though. I don't have more energy to investigate it though. /Simon