Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

AW: Assembler Parameter auf Stack legen

  Alt 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.
  Mit Zitat antworten Zitat