Tangent: for SimpleNgen, I probably could have saved myself a lot of work by letting GCC do the code generation. That is, we could narrow SimpleNgen's job to be that of translation from (a subset of) MSIL to C source, and then we would let GCC translate from C to ARM (or Thumb, or anything else). Perhaps I ought to have done it that way, but I wanted to play around with writing a compiler.
There was a partial implementation of modding gcc to compile cil to native - the frontend part of this project:
http://gcc.gnu.org/projects/cli.html