preguntar acerca de x86
2
réponses
Langage d’assemblage — Comment faire Modulo?
Y a-t-il quelque chose comme un modulo-opérateur dans L'assembleur x86? ... …
demandé sur
1970-01-01 00:33:31
3
réponses
Comment les registres fs/gs sont-ils utilisés dans Linux AMD64?
Sur l'architecture x86-64, deux registres ont un but particulier: FS et GS. Dans linux 2.6.* , le registre FS semble être utilisé pour stocker des informations thread-local.
Est-ce exact?
Qu'est-ce qui est stocké à fs: 0? Y a-t-il une structure C …
demandé sur
1970-01-01 00:33:31
4
réponses
Que signifie le signe dollar ($) dans l’assemblage x86 lors du calcul des longueurs de chaîne comme «$ — label»? [dupliquer]
Cette question a déjà une réponse ici:
Comment $ fonctionne-t-il dans NASM, exactement?
1 réponse
Par exemple, si nous écrivions un programme de type hello …
demandé sur
1970-01-01 00:33:32
1
réponses
Comment fonctionnent exactement les registres partiels sur Haswell/Skylake? Écrire AL semble avoir une fausse dépendance sur RAX, et AH est incohérent
Cette boucle s'exécute à une itération par 3 cycles sur Intel Conroe / Merom, goulot d'étranglement sur le débit imul comme prévu. Mais sur Haswell / Skylake, il s'exécute à une itération par 11 cycles, apparemment parce que {[2] } a une dépendance …
demandé sur
1970-01-01 00:33:37
7
réponses
Quelles sont les causes des défauts de page?
Selon Wikipedia:
Une erreur de page est un piège au logiciel déclenché par le matériel lorsqu'un programme accède à une page qui est mappée dans l'espace d'adressage virtuel, mais pas chargée dans la mémoire physique . (l'emphase est mienne)
O …
demandé sur
1970-01-01 00:33:31
5
réponses
Spinlock de montage en ligne Le plus rapide
J'écris une application multithread en C++, où les performances sont critiques. J'ai besoin d'une grande quantité de verrouillage lors de la copie de petites structures entre les threads, pour cela j'ai choisi d'utiliser des spinlocks.
J'ai fait des …
demandé sur
1970-01-01 00:33:32
3
réponses
Condition de course sur x86
Quelqu'un Pourrait-il expliquer cette déclaration:
shared variables
x = 0, y = 0
Core 1 Core 2
x = 1; y = 1;
r1 = y; r2 = x;
Comment est-il possible d'avoir r1 == 0 et r2 == 0 sur des processeurs x86?
Source "le langage de la c …
demandé sur
1970-01-01 00:33:31
5
réponses
Performances relatives des verrous swap vs compare-and-swap sur x86
Deux idiomes de verrouillage communs sont:
if (!atomic_swap(lockaddr, 1)) /* got the lock */
Et:
if (!atomic_compare_and_swap(lockaddr, 0, val)) /* got the lock */
Où val pourrait simplement être une constante ou un identificateur pour le nouv …
demandé sur
1970-01-01 00:33:31
1
réponses
Cycles perdus sur Intel? Une incohérence entre rdtsc et CPU CLK UNHALTED.REF TSC
Sur les processeurs récents (au moins la dernière décennie) Intel a offert trois compteurs de performance matérielle à fonction fixe, en plus de divers compteurs de performance configurables. Les trois compteurs fixes sont:
INST_RETIRED.ANY
CPU_CLK …
demandé sur
1970-01-01 00:33:37
3
réponses
Comment faire pour que GCC génère des instructions bswap pour big endian store sans builtins?
je travaille sur une fonction qui stocke une valeur 64 bits en mémoire au format big endian. J'espérais que je pourrais écrire portable C99 code qui fonctionne à la fois peu et big endian plates-formes et que les compilateurs x86 modernes génèrent un …
demandé sur
1970-01-01 00:33:36