AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rotate in Delphi-Language?

Ein Thema von himitsu · begonnen am 26. Okt 2014 · letzter Beitrag vom 28. Okt 2014
 
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#13

AW: Rotate in Delphi-Language?

  Alt 28. Okt 2014, 11:27
Weils ziemlich "gefährlich" ist.
Du weißt in der inline-Methode nicht welche Register in der aufrufenden Methode noch gebraucht werden, du weißt nicht wie der Stack aussieht etc. Und Delphi weiß nicht was du da in Assembler geschrieben hast und schafft es dann einfach nicht dein Assemblercode in die entsprechenden Methoden einzubauen. Denn da wie schon gesagt der Code meistens nicht 1:1 in die aufrufende Methode passt (ohne irgendwas kaputt zu machen) müsste Delphi die Semantik deines Codes erkennen und deinen Ursprungscode dynamisch an die jeweilige Situation der aufrufenden Methode anpassen.
Ich schätze das würde funktionieren, wenn man einen gewissen satz an restriktionen setzen würde.

Max 2 Paremeter + Result
Parameter und Result werden fest auf einen eigenen register gemapped (Deswegen auch nur support für 2 plus result)
Somit sind die parameter(+Result) auch nur in Mnemonics mit Register-Parametern zulässig.

Durch das strikte mapping des Input/Output sollte der compiler in der lage sein die Parameter der aufrufenden funktion vor dem inlined asm zu sichern bzw collisionen zu erkennen.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  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 11:26 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