Romcc
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 three times 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. However, it is still used in the SerialICE project, related to coreboot.
Since all functions compiled by romcc are inlined, all code is roughly three times 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. However, it is still used in the SerialICE project, related to coreboot.
Comments