Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Inline-Funktionen und der Delphi-Compiler...

  Alt 6. Nov 2007, 14:02
Könnte mir gut vorstellen, dass das von der Anzahl der benötigten Register abhängt.
Wenn die Inline-Funktion z.B. zwei Register benötigt aber im aufrufenden Kontext schon alle X86 Register
benützt werden, wird sich der Compiler wohl dafür entscheiden die Funktion nicht inline zu kompilieren.
Der X86 Befehlssatz hat leider viel zu wenig Register.
Alternativ könnte der Compiler ja PUSH und POP einfügen, aber das ist viel komplizierter als ein normaler
Funktionsaufruf.

Wenn die Inline-Funktion nur ein Register (EAX) benötigt, gibt es wahrscheinlich kein Problem,
da ja mit EAX ständig gearbeitet wird.
Die Inlinefunktion sollte also keine lokalen Variablen benutzen und höchstens einen Übergabeparameter haben,
damit nur ein Register benützt werden muss.

Das sind hier nur Vermutungen, aber ich denke dass sie zutreffen.
Andreas
  Mit Zitat antworten Zitat