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.
[edit] See also
[edit] External links
[edit] References
- ^ 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.