Assembleur 80x86 | MAXSS |
---|---|
INTEL Pentium III+, SSE (KNI/MMX2) | Maximum Scalar Single-Precision Floating-Point Value |
Syntaxe
MAXSS dest,source |
Description
Cette instruction permet de retourner la valeur maximal entre l'opérande source et destination.
Remarques
- L'instruction MAXSS compare les valeurs à virgule flottante de simple précision faibles dans le premier opérande source et le deuxième opérande source, et renvoie la valeur maximale au double mot faible de l'opérande de destination.
- 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 MAXSS peut être émulée à l'aide d'une séquence d'instructions, telle qu'une comparaison suivie de AND, ANDN et OR.
- Le deuxième opérande source peut être un registre XMM ou un emplacement mémoire 32 bits. Les premiers opérandes source et destination sont des registres XMM.
- Version SSE héritée 128 bits : la destination et le premier opérande source sont identiques. Les bits (MAXVL...32) du registre de destination correspondant restent inchangés.
- Version encodée VEX.128 et EVEX : Le premier opérande source est un registre XMM encodé par VEX.vvvv. Les bits (127...32) de la destination du registre XMM sont copiés à partir des bits correspondants dans le premier opérande source. Les bits (MAXVL...128) du registre de destination sont remis à zéro.
- Version encodée EVEX : l'élément de mot double bas de l'opérande de destination est mis à jour en fonction du masque d'écriture.
- Le logiciel doit garantir que VMAXSS est codé avec VEX.L = 0. Le codage de VMAXSS avec VEX.L = 1 peut rencontrer un comportement imprévisible sur différentes générations de processeurs.
Algorithme
MODULE MAXSS(dest,source) SI dest n'est pas indéfinit ALORS dest ← dest FIN SI SI source n'est pas indéfini ALORS dest ← source FIN SI SI source(i) >= dest(i) ALORS dest ← source FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
MAXSS xmm1,xmm2/m32 | F3h 0Fh 5Fh /r | Cette instruction permet de retourner la valeur maximal entre l'opérande source et destination. |
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 693 à 694.
Dernière mise à jour : Vendredi, le 5 septembre 2014