Encode the given SPARC program by emitting the prologue, then the encoding of each of the program's instructions, then the epilogue.
Register allocation.
Register allocation. Each datum has a register in which its value will be stored. We reuse registers when we can. E.g., in an addition the result is placed in the same register as the right operand since the latter will not be needed again. Leaves actually allocate a register from the available registers.
Translate SPARC programs into SPARC assembly code. Completes the code generation (e.g., by allocating registers) and outputs the code as text in assembly code syntax. Relies on the C run-time system for basic facilities including input, output and some arithmetic operations. The parameter is the emitter to use to actually output code.