Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
Delphi 12 Athens
|
AW: Assembler Parameter auf Stack legen
25. Nov 2022, 13:51
Gut, so ist es wenigstens Eindeutig.
1. Paramater immer in RCX oder XMM0
2. Paramater immer in RDX oder XMM1
3. Paramater immer in R8 oder XMM2
4. Paramater immer in R9 oder XMM3
Rest auf dem Stack
Oder anders ausgedrückt in XMM3 pder R9 ist immer der 3. Parameter oder nichts.
---
Der Performance halber hätte ich möglichst viel auf den Stack gelegt,
aber größere Methoden kopieren das intern eh wieder auf den Stack, um das Register nutzen zu können.
Und eine Funktion mit 8 Parametrn (hälfte Floats), würde immer die Register RCX/RDX/R8/R9/XMM0/XMM1/XMM2/XMM3 belegen,
egal in welcher Reihenfolge die Parameter vorkämen.
(alles Weiter dann erst auf dem Stack, also ab dem 5. Float, bzw. dem 5. anderen Parameter erst das Jeweilige auf den Stack)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|