When last we left this patch, the general consensus seemed to be that it needed to be cleaned up to enforce better separation of the one-time versus target-specific initialization parts during regular startup, and to use the same function for target initialization during startup as during subsequent calls for re-initialization to avoid bit-rot. See, for instance, previous discussion here: http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00763.html http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00850.html I've now done that rewrite. This is the non-MIPS-specific part of the patch -- the MIPS-specific part, to implement selecting mips16/nomips16 on a per-function basis, is almost unchanged from the previous version, and I'll repost that in a separate message. Besides the MIPS testing (both with and without -mflip-mips16), I also tried to bootstrap on i686, but that's been dying for me with some unrelated error while building libjava. I did, however, verify that there are no regressions in the gcc testsuite on i686. OK to commit now? Or do I need to do another round of clean-up on it? -Sandra