AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Inline-Funktionen und der Delphi-Compiler...
Thema durchsuchen
Ansicht
Themen-Optionen

Inline-Funktionen und der Delphi-Compiler...

Offene Frage von "OldGrumpy"
Ein Thema von OldGrumpy · begonnen am 6. Nov 2007 · letzter Beitrag vom 6. Nov 2007
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz