This patch does some major cleanup to fix bugs in the mips16 support for hardware floating point. It also adds support for complex return values. I've tested this in a mips32r2 -mabi=32 -mips16 configuration, where it cleans up 120+ test failures, and also with -mfp64 added to that, where it gets rid of ~250 failures. There's also a new test case included to test all the combinations of stub functions for interoperability between mips16 and non-mips16 mode. OK to commit? -Sandra