Assembleur 80x86 | MAXSD |
---|---|
INTEL Pentium 4+, SSE2 | Maximum Scalar Double-Precision Floating-Point Value |
Syntaxe
MAXSD dest,source |
Description
Cette instruction permet de retourner la valeur maximal entre l'opérande source et destination de nombre réel de simple précision.
Remarques
- L'instruction MAXSD compare les valeurs à virgule flottante de double précision basse dans le premier opérande source et le deuxième opérande source, et renvoie la valeur maximale au quadruple mot bas de l'opérande de destination. Le deuxième opérande source peut être un registre XMM ou un emplacement mémoire 64 bits. Les premiers opérandes source et destination sont des registres XMM. Lorsque le deuxième opérande source est un opérande mémoire, seuls 64 bits sont accessibles.
- Si les valeurs comparées sont toutes les deux 0.0s (de l'un ou l'autre signe), la valeur du deuxième opérande source est renvoyée. Si une valeur du deuxième opérande source est un SNaN, ce SNaN est renvoyé inchangé à la destination (c'est-à-dire qu'une version QNaN du SNaN n'est pas renvoyée).
- Si une seule valeur est un NaN (SNaN ou QNaN) pour cette instruction, le deuxième opérande source, soit un NaN ou une valeur à virgule flottante valide, est écrit dans le résultat. Si au lieu de ce comportement, il est nécessaire que le NaN de l'un ou l'autre des opérandes source soit renvoyé, l'action de MAXSD peut être émulée à l'aide d'une séquence d'instructions, telle qu'une comparaison suivie de AND, ANDN et OR.
- Version SSE héritée 128 bits : la destination et le premier opérande source sont identiques. Les bits (MAXVL-1...64) du registre de destination correspondant restent inchangés.
- Version codée VEX.128 et EVEX : les bits (127...64) de la destination du registre XMM sont copiés à partir des bits correspondants dans le premier opérande source. Les bits (MAXVL-1...128) du registre de destination sont remis à zéro.
- Version encodée EVEX : L'élément quadruple-mot bas de l'opérande de destination est mis à jour en fonction du masque d'écriture.
- Le logiciel doit garantir que VMAXSD est codé avec VEX.L = 0. Le codage de VMAXSD avec VEX.L = 1 peut rencontrer un comportement imprévisible sur différentes générations de processeurs.
Algorithme
MODULE MAXSD(dest,source) SI dest(0..63) = 0,0 ∩ source(0..63) = 0,0) U IsSNaN(dest(0..63)) U IsSNaN(source(0..63)) U dest(0..63) ≤ source(0..63)) ALORS dest(0..63) ← source(0..63) FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
MAXSD xmm1, xmm2/m64 | F2h 0Fh 5Fh /r | Cette instruction permet de retourner la valeur maximal entre l'opérande source et destination de nombre réel de simple précision. |
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 690 à 692.
Dernière mise à jour : Vendredi, le 5 septembre 2014