Sparc Overview
SPARC (the Scalable Processor ARChitecture) is a RISC-based processor mainly used in high-end workstations and servers; in particular, Sun's SparcStation and many of Sun's Ultra machines are SPARC based. Notable features of Sun's implementation include:
- OpenBoot (aka OpenFirmware, IEEE 1275)
As Sparc hardware generally is highly expensive, few hobby OS's target it; however, as more and more older SPARCs are being replaced, an interested developer can often find them at swap meets and in discard piles, where they are available at little cost.
As a side effect of their high cost, little documentation is available for Sun's workstations at a hardware level, and what is available from Sun often requires a support contract. Fortunately, several free operating systems support the Sparc, such as Linux and *BSD.
The Sparc processor has several versions:
- V8: 32-bit, used in Sun's SparcStations
- V9: 64-bit, used in Sun's ULTRA workstations. Also known as UltraSparc.
Registers
| Name | Number | Function | Callee must preserve? |
|---|---|---|---|
| %g0 | $0 | constant 0 | |
| %g1-%g7 | $1-$7 | global registers 1-7 | |
| %o0-%o5 | $8-$13 | output registers 0-5 | |
| %sp | $14 | stack pointer | |
| %o7 | $15 | subroutine return address | |
| %l0-%l7 | $16-$23 | local registers 0-7 | |
| %i0-%i5 | $24-$29 | input registers 0-5 | |
| %fp | $30 | frame pointer | |
| %i7 | $31 | function return address |