Suchergebnisse für Anfrage "x86"
Verwendet die x86_64-CPU dieselben Cache-Zeilen für die Kommunikation zwischen zwei Prozessen über den gemeinsamen Speicher?
Wie bekannt sind alle Ebenen des Cache L1 / L2 / L3 auf modernen x86_64 virtuell indiziert, physisch markiert [http://www.realworldtech.com/sandy-bridge/7/]. Und alle Kerne kommunizieren über den Last Level Cache - Cache-L3 unter Verwendung des ...
Packing BCD to DPD: Wie kann diese amd64-Assembler-Routine verbessert werden?
Ich schreibe eine Routine zum Konvertieren zwischen BCD [https://en.wikipedia.org/wiki/Binary-coded_decimal] (4 Bits pro Dezimalstelle) undDicht gepackte Dezimalzahl (DPD) [https://en.wikipedia.org/wiki/Densely_packed_decimal] (10 Bits pro ...
Inhalt eines Speicherorts referenzieren. (x86-Adressierungsmodi)
Ich habe einen Speicherort, der ein Zeichen enthält, das ich mit einem anderen Zeichen vergleichen möchte (und es befindet sich nicht oben auf dem Stapel, daher kann ich nicht einfachpop it). Wie verweise ich auf den Inhalt eines Speicherorts, ...
Wie führe ich eine Uint32 / Float-Konvertierung mit SSE durch?
n SSE gibt es eine Funktion_mm_cvtepi32_ps(__m128i input), der einen Eingabevektor mit 32 Bit breiten Ganzzahlen mit Vorzeichen verwendet int32_t) und konvertiert sie infloat s. Now, ich möchte Eingabe-Ganzzahlen als nicht signiert ...
Zweite Phase des Bootloaders druckt den Müll mit Int 0x10 / ah = 0x0e
Ich versuche, Assembly zu lernen und einen Bootloader zu schreiben. Der folgende Code lädt den Inhalt eines Diskettenlaufwerks in den Speicher und springt dorthin (beginnt mit dem Laden bei Adresse 0x1000). Dieser Code soll "X" auf dem ...
Erhebliche FMA-Leistungsanomalie im Intel Broadwell-Prozessor
Code1: vzeroall mov rcx, 1000000 startLabel1: vfmadd231ps ymm0, ymm0, ymm0 vfmadd231ps ymm1, ymm1, ymm1 vfmadd231ps ymm2, ymm2, ymm2 vfmadd231ps ymm3, ymm3, ymm3 vfmadd231ps ymm4, ymm4, ymm4 vfmadd231ps ymm5, ymm5, ymm5 vfmadd231ps ymm6, ymm6, ...
Verwendet double schneller als float?
Doppelwerte speichern eine höhere Genauigkeit und sind doppelt so groß wie ein Float. Sind Intel-CPUs jedoch für Floats optimiert? Das heißt, sind Doppeloperationen genauso schnell oder schneller als Gleitkommaoperationen für +, -, * und /? ...
Automatisches Generieren von FMA-Anweisungen in MSVC
MSVC unterstützt seit Jahren AVX / AVX2-Anweisungen und entsprichtdieser msdn-Blogbeitrag [http://blogs.msdn.com/b/vcblog/archive/2014/02/28/avx2-support-in-visual-studio-c-compiler.aspx] , es kann automatisch @ erzeug fused-multiply-add ...
Welche 2-Komplement-Integer-Operationen können verwendet werden, ohne hohe Bits in den Eingängen auf Null zu setzen, wenn nur der niedrige Teil des Ergebnisses gewünscht wird?
Bei der Assembly-Programmierung ist es üblich, aus den niedrigen Bits eines Registers etwas zu berechnen, bei dem nicht garantiert ist, dass die anderen Bits auf Null gesetzt sind. In höheren Sprachen wie C werden die Eingaben einfach auf die ...
Verwenden des Basiszeigerregisters in C ++ inline asm
Ich möchte das Basiszeigerregister verwenden können %rbp) innerhalb von inline asm. Ein Spielzeugbeispiel dafür ist wie folgt: void Foo(int &x) { asm volatile ("pushq %%rbp;" // 'prologue' "movq %%rsp, %%rbp;" // 'prologue' "subq $12, %%rsp;" // ...