Da du C++ magst und nicht C, nimm doch lieber auch die C++ Casts
Was meinst du damit? dynamic_cast<> und static_cast<> oder wie?
Lossy eX hat geschrieben:
Weißt du in welchem "Modus" SSE bei dir arbeitet? SSE hat 2 Funktionen zum Laden von Daten in ein XMM Register. Eine für 16 Byte Alligned Daten und eine für nicht Aligned Daten. Die für 16 Byte Aligned ist ein gutes Stück schneller als die Andere. Also wenn du da eine Möglichkeit hast so etwas irgendwie einzustellen, dann solltest du davon Gebrauch machen.
Das müßte bei mir schon das für das alligned sein wenn ich mich recht erinnere. In der doku gab es jeweils eine funktion für aligned und eine für nicht aligned, ich glaub ich hab immer die für aligned genommen, schau aber nochmal nach
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Die Berechnungsmethoden sind bei beiden Methoden die Selben, da diese Methode ja wirklich nur auf den entsprechenden Registern arbeiten. Interssant ist da lediglich das Bewegen der Daten in oder aus einem XMM Register zu oder von einem Speicherbereich. Und wenn ich das recht gesehen habe passiert das bei dir Automatisch beim Zuweise zu deiner speziellen Variable. Aber schau mal ob du was findest.
Da du C++ magst und nicht C, nimm doch lieber auch die C++ Casts
Was meinst du damit? dynamic_cast<> und static_cast<> oder wie? [
Genau! Ob bei dir static_cast reicht weiß ich jetzt garnicht. Hab mit dem SSE-Zeug noch nicht selber gearbeitet. Dem C-Cast enstprechend wäre der reinterpret_cast. Der castet dann alles. Udn ist deswegen auch so hässlich, damit das sofort auffällt.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Da du C++ magst und nicht C, nimm doch lieber auch die C++ Casts
Was meinst du damit? dynamic_cast<> und static_cast<> oder wie? [
Genau! Ob bei dir static_cast reicht weiß ich jetzt garnicht. Hab mit dem SSE-Zeug noch nicht selber gearbeitet. Dem C-Cast enstprechend wäre der reinterpret_cast. Der castet dann alles. Udn ist deswegen auch so hässlich, damit das sofort auffällt.
Wozu? Das macht im endeffekt genau das gleiche, nur das das eine hübsch aussieht und das andere nicht
C-Casts übersieht man schnell. Und der static_cast castet auch nicht alles. Gerade das wilde rumgecaste in manchen C-Programm führt zu Fehlern, die man dann schlecht findet. Eben weil der C-Cast alles macht.
Daher sind die in C++ Schreibweise deutlicher und auch nochmal unterteilt.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
C-Casts übersieht man schnell. Und der static_cast castet auch nicht alles. Gerade das wilde rumgecaste in manchen C-Programm führt zu Fehlern, die man dann schlecht findet. Eben weil der C-Cast alles macht. Daher sind die in C++ Schreibweise deutlicher und auch nochmal unterteilt.
In kritischen fällen stimme ich dir zu, aber da wo man weiß was man macht halte ich sowas für übertrieben
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wegen Kompatibilität: Du kannst das ganze ja über Compilerswitches festlegen und dann eine Version mit und eine ohne MMX/SSE anbieten.
Für alle, die noch interessiert sind: FPC bietet eine Unit (mmx.pas, siehe Run Time Library Reference, Kapitel 19 (Reference for unit 'mmx')) sowie einen Compilerswitch ($mmx, Siehe hier) an, die das Arbeiten mit MMX vereinfachen. Es gibt allerdings keine Emulation, falls kein MMX vorhanden ist (das sollte man vorher abprüfen, die mmx.pas gibt eine globale Boolean-Variable raus, die sagt, ob die CPU mmx kann). Ein Beispiel findet sich hier.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.