Project 6 is to read chapter nine of the text and build a module to translate IR trees to machine instructions.
Your module may generate code for the x86, the Sparc or the MIPS (or other ISA's if you request in advance!). Keep your life simple and save your hacking cycles for more interesting parts of the compiler by choosing the MIPS instruction set -- it's real, reasonable, and there's a good emulator for it to help you try out your programs.
Your structure should match the CODEGEN signature described in chapter nine. In particular, it should export a "codegen" function that maps a frame and a single IR statement to a list of assembler instructions.
You will also need to augment your frame structure to add the register lists and functions that add entry/exit code to Tiger procedure bodies as described on page 208 of the text.
The MIPS instruction set is documented in the SPIM documentation; see the course web page for links. For Sparc & x86, you're on your own.
You should submit the following files:
Word to the wise: this should not be too hard, but under no circumstances do you want to go past the project deadline. The following phases will require serious hacking. If you go over the deadline, you take a double hit: you lose points on your late project as well as using up the time allocated for the more difficult current project.
In fact, now is a good time to make a pass over your compiler and clean up / finish up any remaining bits and pieces, so that you will be well positioned for the upcoming, final DFA-analysis/register-allocation/final-integration push to complete your compiler.
As always... good luck; have fun!
-Olin