I need to implement something akin to soft float for mips 16 in order to implement mips 16 hard float (current llvm mips16 is all soft float). Mips 16 mode does not have floating point instructions but mips16 is a mode and there is still a mips32 (or mips64) processor present so you can in essence do soft float but them implement the soft float using mips32 hard float. It's easy to switch between mips16 and mips32 functions. This is how gcc mips16 works and there is already this kind of soft float library that is implemented as hard float mips32 functions. Basically it is soft float but with different library entry names. So for example, instead of Names[RTLIB::MUL_F32] = "__mulsf3"; I would want Names[RTLIB::MUL_F32] = "__mips16__mulsf3"; I'm trying to think of the best way to do this since soft float is not done in target independent code but this is a target dependent version of soft float. I'll need to override a whole set of names and mips 16 hard float will behave like soft float except for the difference in these names. I'm hoping that it all maps one to one (i.e it's as simple as changing the names) because otherwise there will be further leakage into the target independent code to solve all of this. Casual inspection says that it is basically just a remapping of library names. To do full mips16 fp so it can integrate seamlessly with mips32 fp there is more to do but this should at least allow me to pass all of test-suite if everything is compiled with mips16. Reed