sorry, i wasn't clear. i meant that you'd need to change the gnat code generator to generate a different representation, not that you'd need another code generator working from the RTL. as you say, gcc's RTL is machine-specific. by `if gnat is structured so as to allow another ... in principle', i meant, it has some internal representation of the Ada program that is at or near a useful level for code generation, before it produces RTL. if it is producing RTL directly from a basic parse tree, you'll have your work cut out. i don't remember dewar's description of gnat's structure, except that it converts its internal representation of Ada to RTL at some point, so i don't know the answer and i can't be much more specific without looking at Gnat's code (which i've also seen but forgotten as regards this point). it was a good five years ago and i was curious rather than interested.