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.