Verfasst: 23.07.2006 12:04
Ich frage mich gerade, ob es für die FPU auch Aufrufkonventionsregeln
bei stdcall & Co. gibt. Glaub nicht, oder? PB leert auf jeden Fall den Stack
nicht und erwartet auch, dass der wieder so zurück kommt, wie er vor
dem Aufruf da war. Wenn du also da FNINIT benutzt, könnts zu schwer
auffindbaren Fehlern führen (auch so, da der Stack ja sehr begrenzt ist).
Bis jetzt habe ich bei den Aufrufkonventionen immer nur für die normalen
Register Regeln gefunden, auch nicht für SSE Register.
EDIT: Noch ein kleines Beispiel zum Verdeutlichen:
Übrigens wurde der Bug schon in Form von rekursiver Berechnung von
Fibonacci-Zahlen per Floats gemeldet. kA ob sich da in naher Zukunft
was ändern wird.
bei stdcall & Co. gibt. Glaub nicht, oder? PB leert auf jeden Fall den Stack
nicht und erwartet auch, dass der wieder so zurück kommt, wie er vor
dem Aufruf da war. Wenn du also da FNINIT benutzt, könnts zu schwer
auffindbaren Fehlern führen (auch so, da der Stack ja sehr begrenzt ist).
Bis jetzt habe ich bei den Aufrufkonventionen immer nur für die normalen
Register Regeln gefunden, auch nicht für SSE Register.
EDIT: Noch ein kleines Beispiel zum Verdeutlichen:
Code: Alles auswählen
Procedure.f d()
!FNINIT
!FLD1
ProcedureReturn
EndProcedure
a.f = d() + d()
Debug a
Fibonacci-Zahlen per Floats gemeldet. kA ob sich da in naher Zukunft
was ändern wird.