x86

x86 ist eine Architektur, die von der Intel 8086 CPU abgeleitet ist. Die x86-Familie umfasst die 32-Bit-Architektur IA-32 und 64-Bit x86-64 sowie 16-Bit-Legacy-Architekturen. Fragen zu letzterem sollten mit [x86-16] und / oder [emu8086] getaggt werden. Verwenden Sie das Tag [x86-64], wenn Ihre Frage für 64-Bit x86-64 spezifisch ist. Verwenden Sie für die x86-FPU das Tag [x87]. Für SSE1 / 2/3/4 / AVX * verwenden Sie auch [sse] und alle zutreffenden [avx] / [avx2] / [avx512]
1
Antwort

Warum existiert CLFLUSH in x86?

Ich habe kürzlich von dem Angriff Row Hammer erfahren. Um diesen Angriff auszuführen, muss der Programmierer die komplette Cache-Hierarchie einer CPU für eine bestimmte Anzahl von Adressen löschen. Meine Frage ist: Warum ist CLFLUSH in x8...
05.09.2016, 19:22
1
Antwort

Ist es nützlich, VZEROUPPER zu verwenden, wenn Ihre Programmbibliotheken keine SSE-Anweisungen enthalten?

Ich verstehe, dass es wichtig ist, VZEROUPPER zu verwenden, wenn Sie SSE- und AVX-Code mischen, aber was ist, wenn ich AVX (und gewöhnlichen x86-64-Code) ohne irgendwelche Legacy-SSE-Anweisungen verwende? Wenn ich niemals einen einzelnen S...
27.02.2018, 23:27
4
Antworten

Wie kann ich feststellen, ob Android x86 ARM emuliert?

Ich habe eine JNI-Bibliothek, die auf den meisten Android-Geräten gut läuft - ARMv5, ARMv7 und x86. Ich benutze NEON-Anweisungen auf ARMv7, aber anstatt den Code mit bedingter / duplizierter Quelle zu überfluten, möchte ich einen Nicht-NEON-A...
04.06.2014, 15:27
2
Antworten

Gibt es eine Möglichkeit für ein Kernel-Modul, die Abschnittsadressen eines anderen geladenen Moduls zu finden?

Auf einem x86-System habe ich ein Linux-Kernel-Modul ("Watcher-Modul"), das vom Kernel jedes Mal benachrichtigt wird, wenn ein bestimmtes Kernel-Modul ("target") geladen wird. Fast jedes Kernel-Modul kann ein Ziel sein. Ich verwende dies in ein...
21.10.2011, 14:46
1
Antwort

Verwendung der LDT (Local Descriptor Table)

Ich versuche, neben den Standard-Code- und Datenbenutzer- und Kernelsegmenten einige Experimente mit verschiedenen Segmenten durchzuführen. Ich hoffe, dies durch Verwendung der lokalen Deskriptor-Tabelle und des Systemaufrufs modify_ldt zu errei...
20.11.2009, 15:17
2
Antworten

Ist es legal, Ladenlokale / Konstruktion von flüchtigen Stack-Variablen zu optimieren?

Ich habe bemerkt, dass clang und gcc in einigen Szenarien die Konstruktion von oder die Zuordnung zu einem flüchtigen struct , das auf dem Stack deklariert ist, optimieren. Zum Beispiel der folgende Code: %Vor% Kompilieren zum Thema: %...
28.10.2017, 21:41
1
Antwort

Einige Iterationen für die vektorisierte Restschleife zurückspringen

Ich vektorisiere eine Schleife von Hand und bearbeite 4 Elemente gleichzeitig. Die Gesamtzahl der Elemente darf nicht ein Vielfaches von 4 sein, daher habe ich am Ende meiner Hauptschleife noch ein paar Dinge übrig. Ich dachte, dass ich die Rest...
17.11.2017, 14:52
1
Antwort

Kann PTEST verwendet werden, um zu testen, ob zwei Register entweder Null oder eine andere Bedingung sind?

Was können Sie mit SSE4.1 ptest anders machen, als zu testen, ob ein einzelnes Register nur aus Null besteht? Können Sie eine Kombination aus SF und CF verwenden, um etwas Nützliches über zwei unbekannte Eingangsregister zu testen? Wo...
30.04.2017, 23:03
1
Antwort

Stapelausrichtung auf x86

Ich hatte einen mysteriösen Busfehler, der auf einer x86 (32-Bit) -Plattform bei der Ausführung von Code aufgetreten ist, der mit gcc-4.8.1 mit -march=pentium4 kompiliert wurde. Ich verfolgte das Problem auf eine SSE-Anweisung: %Vor% mit...
13.02.2014, 07:57
2
Antworten

Hardware-Leistungsindikator-APIs für Windows

Ich würde gerne Hardware-Leistungsindikator verwenden, speziell x86-CPUs, um Cache-Misses oder Verzweigungsfehlvorhersage zu erhalten. Leistungsindikatoren werden in fortgeschrittenen Profilern wie Intel VTune stark verwendet. Bitte seien Sie...
06.01.2012, 21:17