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.
If you are considering generating code for the x86, lie down, elevate your feet, and wait for the feeling to pass.
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.
Note that you only get one week for this phase of the compiler (in order to make time available where you'll need it---the register allocator). So don't delay; start now.
As always... good luck; have fun!
-Olin