Ich habe 2009 zum ersten Mal festgestellt, dass GCC (zumindest bei meinen Projekten und auf meinen Maschinen) die Tendenz hat, merklich schnelleren Code zu generieren, wenn ich für Größe ( -Os) anstelle von Geschwindigkeit ( -O2oder -O3) optimiere , und ich habe mich seitdem gefragt, warum. Ich habe es geschafft, …
Ich habe eine beliebige Liste von .NET-Assemblys. Ich muss programmgesteuert prüfen, ob jede DLL für x86 erstellt wurde (im Gegensatz zu x64 oder einer beliebigen CPU). Ist das möglich?
Ich habe über divund mulMontagevorgänge gelesen und mich entschlossen, sie in Aktion zu sehen, indem ich ein einfaches Programm in C schrieb: Dateidivision.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } Und dann Assembler-Code generieren mit: gcc …
Hintergrund: Beim Optimieren von Pascal- Code mit eingebetteter Assemblersprache bemerkte ich eine unnötige MOVAnweisung und entfernte sie. Zu meiner Überraschung wurde mein Programm durch das Entfernen der nicht erforderlichen Anweisungen langsamer . Ich fand heraus, dass das Hinzufügen beliebiger, nutzloser MOVAnweisungen die Leistung noch weiter steigerte . Der Effekt ist …
Die folgenden Links erläutern die x86-32-Systemaufrufkonventionen für UNIX (BSD-Version) und Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Aber wie lauten die x86-64-Systemaufrufkonventionen unter UNIX und Linux?
Ich glaube, ich habe bei der Implementierung von O'Neills PCG PRNG einen Fehler in GCC gefunden. ( Anfangscode im Compiler Explorer von Godbolt ) Nach dem Multiplizieren oldstatemitMULTIPLIER , (Ergebnis in RDI gespeichert), GCC trägt nicht das Ergebnis an INCREMENT, movabs'ing INCREMENTstattdessen RDX, die dann als der Rückgabewert von rand32_ret.state …
Ich möchte feststellen, ob eine native Assembly von einer verwalteten Codeanwendung ( C # ) als x64 oder x86 erfüllt wird . Ich denke, es muss sich irgendwo im PE-Header befinden, da der OS-Loader diese Informationen kennen muss, aber ich konnte sie nicht finden. Natürlich bevorzuge ich es in verwaltetem …
Rust hat 128-Bit-Ganzzahlen, diese werden mit dem Datentyp i128(und u128für vorzeichenlose Ints) bezeichnet: let a: i128 = 170141183460469231731687303715884105727; Wie macht Rust diese? i128 Werte auf einem 64-Bit-System funktionieren? zB wie rechnet man damit? Da der Wert meines Wissens nicht in ein Register einer x86-64-CPU passen kann, verwendet der Compiler irgendwie …
In der x86-64-Tour der Intel-Handbücher habe ich gelesen Die vielleicht überraschendste Tatsache ist, dass ein Befehl wie beispielsweise MOV EAX, EBXautomatisch die oberen 32 RAXRegisterbits auf Null setzt . In der Intel-Dokumentation (3.4.1.1 Allzweckregister im 64-Bit-Modus in der manuellen Basisarchitektur), die an derselben Quelle zitiert wird, heißt es: 64-Bit-Operanden erzeugen …
Ich habe ein kleines Dilemma beim Einrichten meiner Visual Studio-Builds für Multi-Targeting. Hintergrund: c # .NET v2.0 mit p / Aufruf in 32-Bit-DLLs von Drittanbietern, SQL compact v3.5 SP1, mit einem Setup-Projekt. Derzeit ist das Plattformziel auf x86 festgelegt, damit es unter Windows x64 ausgeführt werden kann. Das Drittanbieterunternehmen hat …
AMD verfügt über eine ABI-Spezifikation, die die auf x86-64 zu verwendende Aufrufkonvention beschreibt. Alle Betriebssysteme folgen ihm, mit Ausnahme von Windows, das über eine eigene x86-64-Aufrufkonvention verfügt. Warum? Kennt jemand die technischen, historischen oder politischen Gründe für diesen Unterschied oder handelt es sich lediglich um ein NIH-Syndrom? Ich verstehe, dass …
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
Ich versuche, einen Windows-Dienst mit InstallUtil.exe zu installieren, und erhalte die Fehlermeldung System.BadImageFormatException: Datei oder Assembly ' {xxx.exe}' oder eine ihrer Abhängigkeiten konnte nicht geladen werden . Es wurde versucht, ein Programm mit einem falschen Format zu laden. Was gibt? BEARBEITEN: (Nicht von OP) Vollständige Nachricht aus dup extrahiert, die …
Ich mache einige leistungskritische Arbeiten in C ++ und wir verwenden derzeit ganzzahlige Berechnungen für Probleme, die von Natur aus Gleitkommawerte sind, weil "es schneller ist". Dies verursacht eine Menge nerviger Probleme und fügt viel nervigen Code hinzu. Jetzt erinnere ich mich, dass ich gelesen habe, wie langsam Gleitkommaberechnungen ungefähr …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.