Da die Toolchain ist mit fpu-emulation (msoft-float) erstellt wurden.
Der Grund dafür ist, dass die CPUs auf der Box keine FUP Hardware haben. Wenn die Hardware vorhanden wäre, würden wir nicht statt dessen die Software Emulation nutzen. Die normalen Aufgaben der AVM Boxen brauchen kaum eine FPU, daher ist es nachvollziehbar, dass AVM keine nutzt.
Es sieht für mich so aus, als würde keine Programm auf der Box die CPU vollständig nutzen.
Es gibt kaum ein Programm, das irgend eine CPU vollständig nutzt.
Wenn sich die Bemerkung aber auf Fließkommaoperationen bezieht, die funktionieren durchaus, aber eben nur in Emulation und daher langsamer. Das lässt sich aber mit der vorhandenen Hardware nicht vermeiden. Solange ein Programm in C geschrieben ist und konsistent die gleichen Optionen nutzt, gibt es da keine Probleme, weder mit der Berechnung noch Parameter Übergabe oder Rückgabewerte.
Die Toolchain kann man nicht ändern, also müssten alle Operation ersetzt werden. Das geht über eine kleine Änderung weit hinaus.
Die Toolchain kann man ändern, aber auch das hätte weitreichende Folgen.
FPU oder setzt man die Operationen in der CPU um?
Prinzipiell kann man FPU Anweisungen nutzen, diese werden jedoch auch emuliert und sind entsprechend langsam. Daher werden mit msoft-float die Parameter nicht in der emulierten FPU übergeben, sondern genauso wie die übrigen Parameter.
Sinnvoll wäre es, msoft-float Unterstützung in Mono einzubauen. Mit mhard-float wird die FPU Emulation nicht nur für die Berechnungen verwendet, sondern auch für Übergabe und Rückgabe von Werten, was zusätzlich Zeit kosten würde. Wo sind denn die von Dir angesprochenen Funktionen? In mini-mips.c habe ich nichts zu FCONV_TO_I8 usw. gefunden, bzw. nur auskommentierte Stellen.