[vbox-dev] Unhappy with recent developments

Klaus Espenlaub klaus.espenlaub at oracle.com
Mon Dec 3 14:05:33 GMT 2012

On 03.12.2012 09:39, Pau Garcia i Quiles wrote:
> On Mon, Dec 3, 2012 at 9:09 AM, Michael Thayer
> <michael.thayer at oracle.com <mailto:michael.thayer at oracle.com>> wrote:
>     I had a quick look at what documentation I could find for faucc
>     online, but I couldn't find any mention of memory model support,
>     which is a requirement for us, as we don't want to jump through
>     hoops to have more than 64K of BIOS code.  I may have missed this of
>     course - do you have any more information?  (Note that I am not
>     actually responsible for our BIOS code, I am just passing on what I
>     know.)
> I looked at the manpage in Debian Sid, which is the only documentation
> available, and it does not mention anything about memory models. It
> might support something by default, though; after all, the main reason
> for developing that compiler was BIOS development
> (There is a lot more documentation in German in the website but it seems
> more generic and I have only skimmed over it)

Looked at the faucc sources, and it's clearly better than bcc (no 
surprise, since faucc is a reasonably state of the art compiler), 
however it also doesn't have the faintest idea what a far pointer is - 
for faucc in 16 bit mode pointers are simply 16 bit values.

So it'd be both painful to write code (using clumsy get_word and 
put_word inline functions) and cause inefficient code generation which 
most likely means that we'd run out of BIOS space more or less straight 
away again. Doing far memory access without compiler support will always 
lead to horrible code quality, because there will be uncountable 
redundant segment register loads. This is especially bad on such a 
register starved architecture as the Intel x86.

Really too bad that there are so many compilers out there which can 
generate 16 bit x86 code, however apparently not a single one which 
qualifies as free enough for Debian and has support for an advanced x86 
memory model (like "compact") which is extremely useful for a BIOS.

So I'm sorry, faucc doesn't do enough.


> --
> Pau Garcia i Quiles
> http://www.elpauer.org
> (Due to my workload, I may need 10 days to answer)

More information about the vbox-dev mailing list