romcc

romcc
Original author(s) Eric W. Biederman
Stable release 0.70 / October 23, 2007
Written in C
Operating system x86
Type Compiler
License GNU General Public License

romcc is a C compiler which generates code which uses only processor registers to store variables, instead of RAM. It was designed to aid with RAM initialization inside the open-source BIOS replacement project coreboot. Before RAM has been initialized there is no RAM available for use and therefore code can only use the CPU registers for memory. A standard compiler like GCC would not be suitable for writing code like this as it requires a stack, which, in the x86 and most other architectures, would have to be contained in RAM.

Since all functions compiled by romcc are inlined, all code is roughly 3x larger than hand-coded assembly.

It is now obsolete for coreboot because the coreboot project uses "cache as ram", enabling an ordinary C compiler to be used.[1]However, it is still used in the SerialICE project, related to coreboot.

See also

External links

References

  1. ^ Anton Borisov (2009-01-06). "The Open Source BIOS is Ten: An interview with the coreboot developers". http://www.h-online.com/open/The-Open-Source-BIOS-is-Ten-An-interview-with-the-coreboot-developers--/features/112353/2. Retrieved 2009-01-13.