[SeaBIOS] insn prefixes?

H. Peter Anvin hpa at zytor.com
Thu Sep 30 06:16:52 CEST 2010


On 09/29/2010 08:51 PM, Kevin O'Connor wrote:
> On Wed, Sep 29, 2010 at 08:19:33AM -0700, H. Peter Anvin wrote:
>> Yeah... big real mode is rather expensive in terms of the 66 and 67
>> prefixes you end up littering the code with just to be in the mode you
>> actually want.  Better then to load a GDT, flip CR0.PE, and go to a
>> 32-bit code segment anyway.
> 
> That brings up an interesting question.  Do you know if instruction
> prefixes result in slower cpu execution?  I know they bloat the code,
> but it's not been clear to me if there is a speed impact (besides a
> small cost to insn fetching).  Real mode execution is documented to be
> slow, but it's unclear if using regular 32bit operations (via
> prefixes) would be even slower, the same, or a little faster.
> 
> BTW, I calculate that prefixes represent 12% of the seabios 16bit code
> size (4720 of 38920 bytes).  I've found the code size with gcc (using
> prefixes) was smaller than the code size was with bcc - largely due to
> the optimizations and improved code structure that gcc enabled.
> 

Oh, yes, there is of course also OpenWatcom, which I personally had high
hopes for ... and it is quite a good 16-bit compiler, it's just that
I've found the OW community to not always have goals compatible with my
needs, which of course are for a decent cross-compiler.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.




More information about the SeaBIOS mailing list