stringtranslate.com

Lista de instrucciones x86 discontinuadas

Instrucciones que en algún momento estuvieron presentes como instrucciones documentadas en uno o más procesadores x86 , pero donde las series de procesadores que contienen las instrucciones se discontinuaron o reemplazaron, sin planes conocidos de reintroducir las instrucciones.

Intelinstrucciones

i386instrucciones

Las siguientes instrucciones se introdujeron en el Intel 80386, pero luego se descontinuaron:

Itanioinstrucciones

Estas instrucciones solo están presentes en el modo de funcionamiento x86 de los primeros procesadores Intel Itanium con soporte de hardware para x86. Este soporte se agregó en "Merced" y se eliminó en "Montecito", reemplazándose por emulación de software .

Instrucciones MPX

Estas instrucciones se introdujeron en las CPU Intel Core "Skylake" de sexta generación . La última generación de CPU que las admitió fue la CPU Core " Coffee Lake " de novena generación.

Intel MPX agrega cuatro registros nuevos, BND0 a BND3, cada uno de los cuales contiene un par de direcciones. MPX también define una tabla de límites como una estructura de datos de directorio/tabla de dos niveles en la memoria que contiene conjuntos de límites superiores e inferiores.

  1. ^ En todas las instrucciones MPX, no se permite el direccionamiento de 16 bits; esto hace que el prefijo de anulación del tamaño de la dirección 67hsea obligatorio en el modo de 16 bits y prohibido en el modo de 32 bits. En el modo de 64 bits, el 67hprefijo se ignora para las instrucciones MPX; el tamaño de la dirección siempre es de 64 bits. Estos comportamientos son exclusivos de las instrucciones MPX.
  2. ^ En BNDMKel modo de 64 bits, el direccionamiento relativo a RIP no está permitido y provocará un error #UD.
  3. ^ ab Las instrucciones BNDLDXy BNDSTXrequieren modos de direccionamiento de memoria que utilizan el byte SIB − los modos de direccionamiento que no son SIB causan #UD.
  4. ^ ab Las instrucciones BNDLDXy BNDSTXproducen una excepción #BR si la entrada del directorio de límites no es válida (lo que impide la traducción de direcciones).
  5. ^ Las instrucciones de bifurcación que pueden aceptar un BNDprefijo son las formas cercanas de JMP(códigos de operación E9y FF /4), CALL(códigos de operación E8y FF /2), RET(códigos de operación C2y C3), y las formas cortas/cercanas de las Jccinstrucciones (códigos de operación 70..7Fy 0F 80..8F). Si el bit de configuración BNDPRESERVE no está establecido, entonces ejecutar cualquiera de estas instrucciones de bifurcación sin el BNDprefijo borrará los cuatro registros de límites. (Otras instrucciones de bifurcación − como por ejemplo saltos lejanos, saltos cortos ( EB), LOOP, IRETetc. − no borran los registros de límites independientemente de si F2hhay un prefijo presente o no).

Cerradura de hardware Elision

La característica de elisión de bloqueo de hardware de Intel TSX está marcada en Intel SDM como eliminada a partir de 2019. [2] Esta característica tomó la forma de dos prefijos de instrucción, XACQUIREy XRELEASE, que podían adjuntarse a atómicos/almacenes de memoria para eludir el bloqueo de memoria que representan.

Instrucciones de VP2Intersect

Las instrucciones VP2INTERSECT (un subconjunto de AVX-512) se introdujeron en Tiger Lake (procesadores Core móviles de 11.ª generación), pero nunca fueron admitidas oficialmente en ningún otro procesador Intel; ahora se consideran obsoletas [3] y figuran en el SDM de Intel como eliminadas a partir de 2023. [2]

A partir de julio de 2024, las instrucciones VP2INTERSECT se han reintroducido en los procesadores AMD Zen 5. [4]

Instrucciones específicas para procesadores Xeon Phi

Instrucciones para el "Rincón de los Caballeros"

Los procesadores Xeon Phi de primera generación , con nombre en código "Knights Corner" (KNC), admitían una gran cantidad de instrucciones que no se ven en ningún procesador x86 posterior. Hay disponible una referencia de instrucciones [5] : las instrucciones/códigos de operación exclusivos de KNC son los que tienen prefijos VEX y MVEX (excepto las instrucciones KMOV, KNOTy KORTEST; estas se mantienen con los mismos códigos de operación y función en AVX-512, pero con una "W" agregada a sus nombres de instrucción).

La mayoría de estas instrucciones exclusivas de KNC son similares pero no idénticas a las instrucciones en AVX-512 ; los procesadores Xeon Phi posteriores reemplazaron estas instrucciones con AVX-512.

Las primeras versiones de AVX-512 evitaban las codificaciones de instrucciones utilizadas por el prefijo MVEX de KNC; sin embargo, con la introducción de Intel APX ( Advanced Performance Extensions ) en 2023, algunas de las antiguas codificaciones de instrucciones MVEX de KNC se han reutilizado para las nuevas codificaciones APX. Por ejemplo, tanto KNC como APX aceptan la codificación de instrucciones 62 F1 79 48 6F 04 C1como válida, pero le asignan diferentes significados:

Instrucciones para "Knights Landing" y "Knights Mill"

Algunas de las instrucciones AVX-512 de los procesadores Xeon Phi "Knights Landing" y modelos posteriores pertenecen a los subconjuntos AVX-512 "AVX512ER", "AVX512_4FMAPS", "AVX512PF" y "AVX512_4VNNIW", todos ellos exclusivos de la serie de procesadores Xeon Phi. Los subconjuntos ER y PF se introdujeron en "Knights Landing"; las instrucciones 4FMAPS y 4VNNIW se añadieron posteriormente en "Knights Mill".

Las instrucciones ER y 4FMAPS son instrucciones aritméticas de punto flotante que siguen un patrón determinado donde:

  1. ^ abc Para las instrucciones AVX512ER, hay disponible una referencia numéricamente exacta como código C. [6]

Las instrucciones AVX512PF son un conjunto de 16 instrucciones de precarga. Todas estas instrucciones utilizan codificación VSIB, donde se requiere un modo de direccionamiento de memoria que utilice el byte SIB y donde la parte de índice del byte SIB se toma para indexar en el archivo de registro vectorial AVX512 en lugar de en el archivo de registro GPR. El registro vectorial AVX512 seleccionado se interpreta entonces como un vector de índices, lo que hace que se realice el cálculo estándar de dirección de desplazamiento + índice + base x86 para cada carril vectorial, lo que hace que se realice una operación de memoria asociada (precargas en el caso de las instrucciones AVX512PF) para cada carril activo. Todas las codificaciones de instrucciones siguen un patrón en el que:

Las instrucciones AVX512_4VNNIW leen un elemento de datos de 128 bits de la memoria, que contiene 4 vectores de dos componentes (cada componente con signo de 16 bits). Luego, para cada uno de los 4 registros AVX-512 consecutivos, interpretarán, para cada carril de 32 bits, el carril como un vector de dos componentes (con signo de 16 bits) y realizarán un producto escalar con el vector de dos componentes correspondiente que se leyó de la memoria (el primer vector de dos componentes de la memoria se utiliza para el primer registro de origen AVX-512, y así sucesivamente). Estos resultados se acumulan luego en un registro de vector de destino.

Los procesadores Xeon Phi (desde Knights Landing en adelante) también presentaban la PREFETCHWT1 m8instrucción (opcode 0F 0D /2, prefetch into L2 cache with intent to write) − estas eran las únicas CPU Intel que admitían oficialmente esta instrucción, pero sigue siendo compatible con algunos procesadores que no son Intel (por ejemplo, Zhaoxin YongFeng).

AMDinstrucciones

Am386Instrucciones SMM

Se introdujeron algunas instrucciones para admitir el modo de administración del sistema en los procesadores Am386SXLV y Am386DXLV. [7] [8] También estaban presentes en los procesadores posteriores Am486SXLV/DXLV y Elan SC300/310. [9]

La funcionalidad SMM de estos procesadores se implementó utilizando el microcódigo ICE de Intel sin una licencia válida, lo que resultó en una demanda que AMD perdió a fines de 1994. [10] Como resultado de esta pérdida, el microcódigo ICE se eliminó de todas las CPU AMD posteriores y las instrucciones SMM se eliminaron con él.

Estas instrucciones SMM también estaban presentes en el IBM 386SLC y sus derivados (aunque con el LOADALLcódigo de operación de retorno SMM similar 0F 07llamado ICERET), [12] [14] [11] así como en el procesador UMC U5S . [15]

Instrucciones de 3DNow!

La extensión del conjunto de instrucciones 3DNow! se introdujo en el procesador AMD K6-2 , principalmente para agregar compatibilidad con instrucciones SIMD de punto flotante que utilizan los registros MMX (dos componentes FP32 en un registro vectorial de 64 bits). Las instrucciones fueron promocionadas principalmente por AMD, pero también eran compatibles con algunas CPU que no eran de AMD. Los procesadores que admitían 3DNow! eran:

  1. ^ Los requisitos de precisión de 3DNow! se pueden cumplir de varias maneras diferentes, por ejemplo:
    • En AMD K6-2, las instrucciones PFRCPIT1, PFRSQIT1y PFRCPIT2realizarían varias partes de una iteración de Newton-Raphson para mejorar la precisión de un resultado inicial de baja precisión de PFRCP/ PFRSQRT. [17]
    • En AMD Geode LX, las instrucciones PFRCPy PFRSQRTcalcularían sus resultados con una precisión total de 24 bits: esto hizo posible convertir las PFRCPIT1instrucciones PFRSQIT1y PFRCPIT2en instrucciones de movimiento de datos puros, realizando la misma operación que MOVQ. [18]
  2. ^ La instrucción 3DNow! PMULHRWtiene el mismo mnemónico que la instrucción Cyrix EMMI PMULHRW, sin embargo su código de operación y función difieren (la instrucción EMMI desplaza a la derecha su resultado de multiplicación en 15 bits, mientras que la instrucción 3DNow! desplaza a la derecha en 16 bits).

    Algunos ensambladores/desensambladores, como NASM, resuelven esta ambigüedad utilizando el mnemónico PMULHRWApara la instrucción 3DNow! y PMULHRWCpara la instrucción EMMI.

  3. ^ La FEMMSinstrucción se diferencia de la instrucción MMX estándar EMMSen que FEMMShace que el contenido del registro FP/MMX no esté definido después de que se ejecuta la instrucción.

3DNow! también introdujo un par de instrucciones de precarga: PREFETCH m8(opcode 0F 0D /0) y PREFETCHW m8(opcode 0F 0D /1). Estas instrucciones, a diferencia del resto de 3DNow!, no se han discontinuado, pero continúan siendo compatibles con las CPU AMD modernas. La PREFETCHWinstrucción también es compatible con las CPU Intel a partir de Pentium 4 de 65 nm , [19] aunque se ejecutaba como NOP hasta Broadwell .

Instrucciones 3DNow+ agregadas conAtlónyK6-2+

  1. ^ ab Las instrucciones PF2IWy PI2FWtambién existían como instrucciones no documentadas en el K6-2 original.

    La variante no documentada PF2IWen K6-2 establecería los 16 bits superiores de cada línea de resultado de 32 bits en todos los 0, mientras que la variante documentada en procesadores posteriores extendería el signo del resultado de 16 bits a 32 bits. [20] [21]

  2. ^ La PSWAPDinstrucción utiliza el mismo código de operación que la antigua PSWAPWinstrucción K6-2 no documentada. [21]

Instrucciones específicas de 3DNow!Geoda GXy LX

SSE5instrucciones derivadas

SSE5 fue una extensión SSE propuesta por AMD, que utilizaba una nueva codificación de instrucciones "DREX" para agregar soporte para nuevas instrucciones de 3 y 4 operandos a SSE. [22] El paquete no incluía el conjunto completo de instrucciones SSE4 de Intel, lo que lo convertía en un competidor de SSE4 en lugar de un sucesor.

AMD decidió no implementar SSE5 como se propuso originalmente; en su lugar, lo reelaboró ​​en FMA4 y XOP, [23] que brindaban una funcionalidad similar pero con una codificación de instrucciones bastante diferente, utilizando el prefijo VEX para las instrucciones FMA4 y el nuevo prefijo XOP similar a VEX para la mayoría de las instrucciones restantes.

XOPinstrucciones

Introducido con el núcleo del procesador Bulldozer, eliminado nuevamente a partir de Zen (microarquitectura) en adelante.

Una revisión de la mayor parte del conjunto de instrucciones SSE5.

Las instrucciones XOP utilizan principalmente el prefijo XOP, que es un prefijo de 3 bytes con el siguiente diseño:

dónde:

Las instrucciones XOP codificadas con el prefijo XOP son las siguientes:

  1. ^ abcdefgh Para cada VPCOM*instrucción, hay una serie de mnemotécnicos de alias disponibles para la instrucción, uno para cada una de las ocho funciones de comparación codificables en el argumento imm8. Estos mnemotécnicos de alias especifican la comparación que se realizará después de la parte "VPCOM" del mnemotécnico. Por ejemplo:
    • VPCOMEQB xmm1,xmm2,xmm3es un alias paraVPCOMB xmm1,xmm2,xmm3,4
    • VPCOMFALSEUQ xmm1,xmm2,[ebx]es un alias paraVPCOMUQ xmm1,xmm2,[ebx],6

XOP también incluía dos instrucciones vectoriales que usaban el prefijo VEX en lugar del prefijo XOP:

Las instrucciones VPERMIL2PDy VPERMIL2PSfueron definidas originalmente por Intel en los primeros borradores de la especificación AVX [24] − fueron eliminadas en borradores posteriores [25] [26] y nunca fueron implementadas en ningún procesador Intel. Sin embargo, fueron implementadas por AMD, que las designó como parte de la extensión del conjunto de instrucciones XOP. (Al igual que las otras partes de XOP, han sido eliminadas en AMD Zen ).

FMA4instrucciones

Compatible con procesadores AMD a partir de la arquitectura Bulldozer , eliminado en Zen . No compatible con ningún chip Intel a partir de 2023.

Multiplicación-suma fusionada con cuatro operandos. FMA4 se implementó en hardware antes de FMA3.

Instrucciones de manipulación de bits de arrastre

AMD introdujo TBM junto con BMI1 en su línea de procesadores Piledriver [27] ; los procesadores posteriores basados ​​en AMD Jaguar y Zen no son compatibles con TBM. [28] Ningún procesador Intel (a partir de 2023) es compatible con TBM.

Todas las instrucciones TBM están codificadas con el prefijo XOP. Están disponibles en formatos de 32 y 64 bits, seleccionados con el bit XOP.W (0=32 bits, 1=64 bits). (XOP.W se ignora fuera del modo de 64 bits). Al igual que todas las instrucciones codificadas con prefijos VEX/XOP, no están disponibles en modo real ni en modo Virtual-8086.

  1. ^ Para BEXTR, un formulario de registro está disponible como parte de BMI1.

Instrucciones para la elaboración de perfiles ligeros

La función AMD Lightweight Profiling (LWP) se introdujo en AMD Bulldozer y se eliminó en AMD Zen . En todas las CPU compatibles, las últimas actualizaciones de microcódigo disponibles han deshabilitado LWP debido a las mitigaciones de Spectre . [31]

Estas instrucciones están disponibles en Ring 3, pero no en Real Mode ni en Virtual-8086. Todas ellas utilizan el prefijo XOP.

  1. ^ ab La dirección utilizada por LLWPCBy SLWPCBes una dirección efectiva, especificada en relación con la dirección base del segmento DS: LLWPCBconvierte esta dirección efectiva en una dirección lineal al sumarle la dirección base DS y SLWPCBla convierte nuevamente al restarle la dirección base DS. Si se cambia la dirección base DS mientras LWP está habilitado, se SLWPCBdevolverá una dirección diferente a la que se especificó en LLWPCBy también puede provocar XSAVEque no se guarde correctamente el estado de LWP.

Instrucciones de otros proveedores

Instrucciones específicas paraSerie V de NECprocesadores

Estas instrucciones son específicas de las CPU NEC V20/V30 y sus sucesoras, y no aparecen en ninguna CPU que no sea NEC. Muchos de sus códigos de operación se han reasignado a otras instrucciones en CPU posteriores que no son NEC.

Instrucciones específicas paracirixyGeodaCPU

Estas instrucciones están presentes en las CPU Cyrix, así como en las CPU NatSemi/AMD Geode derivadas de microarquitecturas Cyrix (Geode GX y LX, pero no NX). También están presentes en las CPU de los socios fabricantes de Cyrix , como IBM, ST y TI, así como en el VIA Cyrix III (solo núcleo "Joshua", no "Samuel") y algunos SoC como STPC ATLAS y ZFMicro ZFx86. [43] Muchos de estos códigos de operación se han reasignado a otras instrucciones en CPU posteriores que no son Cyrix.

  1. ^ Las instrucciones Cyrix SMM también incluyen RSM( 0F AA; Regresar del modo de administración del sistema), sin embargo, RSMno es una instrucción específica de Cyrix y continúa existiendo en los procesadores x86 modernos que no son Cyrix.
  2. ^ RSDC con CScomo registro de destino solo es compatible con NatSemi Geode GX2 y AMD Geode GX/LX [47] - en otros procesadores, provoca #UD.
  3. ^ Algunos ensambladores/desensambladores, como NASM , utilizan el mnemónico de instrucción SMINTOLDpara la 0F 7Ecodificación.
  4. ^ ab Para las instrucciones RDSHRy WRSHR, la documentación de Cyrix [48] especifica que la instrucción acepta un byte ModR/M pero no especifica la codificación del campo reg del byte ModR/M. NASM v0.98.31 y posteriores utilizan /0 para estas instrucciones, [49] mientras que las tablas de códigos de operación de sandpile.org [50] indican que el campo reg se ignora para estas instrucciones.

cirixEMMIinstrucciones

Estas instrucciones se introdujeron en los procesadores Cyrix 6x86MX y MII, y también estaban presentes en los procesadores MediaGXm y Geode GX1 [53] . (En procesadores posteriores que no eran Cyrix, todos sus códigos de operación se han utilizado para instrucciones SSE o SSE2).

Estas instrucciones son instrucciones SIMD de números enteros que actúan sobre vectores de 64 bits en registros MMX o memoria. Cada instrucción toma dos operandos explícitos, donde el primero es un operando de registro MMX y el segundo es un operando de memoria o un segundo registro MMX. Además, varias de las instrucciones toman un operando implícito, que es un registro MMX implícito del primer operando, como se muestra a continuación:

En las descripciones de instrucciones de la siguiente tabla, arg1se arg2hace referencia a los dos operandos explícitos de la instrucción y impal operando implícito.

  1. ^ Las implementaciones difieren en si la PAVEBinstrucción trata los bytes como firmados o no firmados. [54]
  2. ^ abcdef Para las instrucciones y PDISTIB, se requiere que el segundo operando explícito sea un operando de memoria − los operandos de registro no son compatibles.PMACHRIWPMV*
  3. ^ La instrucción Cyrix EMMI PMULHRWtiene el mismo mnemónico que la PMULHRWinstrucción 3DNow!, sin embargo su código de operación y función difieren (la instrucción EMMI desplaza a la derecha su resultado de multiplicación en 15 bits, mientras que la instrucción 3DNow! lo desplaza a la derecha en 16 bits).

    Algunos ensambladores/desensambladores, como NASM, resuelven esta ambigüedad utilizando el mnemónico PMULHRWApara la instrucción 3DNow! y PMULHRWCpara la instrucción EMMI.

Instrucciones específicas paraTecnologías VIACPU

Todos los procesadores VIA C3 admiten el conjunto de instrucciones alternativas (AIS ) de VIA. Las instrucciones x86 presentes en estos procesadores para admitir AIS son:

Estas instrucciones no están presentes en VIA C7 ni en ningún procesador VIA posterior.

Instrucciones específicas paraChips y tecnologíasCPU

El PC/Chip C&T F8680 es un sistema en un chip que incluye un núcleo de CPU compatible con 80186, con algunas instrucciones adicionales para admitir la función de supervisión/gestión del sistema "SuperState R" [58] específica del F8680 . Algunas de las instrucciones agregadas para "SuperState R" son: [59]

C&T también desarrolló un procesador compatible con 386 conocido como Super386. Este procesador admite, además del conjunto de instrucciones básico de Intel 386, una serie de instrucciones para admitir la función de administración del sistema "SuperState V" específica de Super386 . Las instrucciones agregadas para "SuperState V" son: [7]

La serie M6117 de microcontroladores integrados cuenta con un núcleo de CPU compatible con Intel 386SX derivado del procesador VM Technology (VMT) VM386SX+. VMT VM386SX+ agrega algunas adiciones específicas del procesador al conjunto de instrucciones Intel 386. Las documentadas para DM&P M6117D son: [63]

Instrucciones presentes en específico80387Clones

Varios coprocesadores de punto flotante de la clase 80387 proporcionaron instrucciones adicionales a las estándar del 80387; ninguna de ellas es compatible con los procesadores posteriores:

  1. ^ La FNSTSG AXinstrucción se puede ejecutar no solo en la FPU Intel 387SL sino también en la Intel 387SX: ejecutar la instrucción inmediatamente después FNINIThará que la instrucción regrese 0000hen 387SX, pero un valor de firma distinto de cero en la 387SL. [66]

Véase también

Referencias

  1. ^ Manual del desarrollador de software de la arquitectura Intel Itanium, volumen 4, (número de documento: 323208, revisión 2.3, mayo de 2010).
  2. ^ ab Intel SDM, volumen 1, número de pedido 253665-083, marzo de 2024, capítulo 2.5
  3. ^ R. Singhal, Sí. Obsoleto. (sobre VP2INTERSECT), 19 de julio de 2023. Archivado el 23 de julio de 2023.
  4. ^ Alexander Yee, Desmontaje del AVX512 de Zen5 y más, 7 de agosto de 2024
  5. ^ Intel, Manual de referencia de la arquitectura del conjunto de instrucciones del coprocesador Intel® Xeon Phi™, septiembre de 2012, número de pedido 327364-001. Archivado el 4 de agosto de 2021.
  6. ^ Intel, Implementaciones de referencia para instrucciones de aproximación de arquitectura Intel® VRCP14, VRSQRT14, VRCP28, VRSQRT28 y VEXP2, id #671685, 28 de diciembre de 2015. Archivado el 18 de septiembre de 2023.

    Código C "RECIP28EXP2.c" archivado el 18 de septiembre de 2023.

  7. ^ ab Microprocessor Report, System Management Mode Explained (vol 6, no. 8, 17 de junio de 1992) − incluye una lista de los códigos de operación SMM de AMD/Cyrix y los códigos de operación "SuperState V" de C&T Super386. Archivado el 29 de junio de 2022.
  8. ^ "Microprocesadores integrados de alto rendimiento y bajo consumo Am386®SX/SXL/SXLV" (PDF) ., publicación n.° 21020, rev A, abril de 1997 − tiene descripciones de instrucciones SMM en las páginas 5 y 6.
  9. ^ AMD, Manual de referencia del programador del microcontrolador Élan™SC310, número de pedido 20665A, abril de 1996, sección 1.9.4, página 49. Archivado el 5 de septiembre de 2024.
  10. ^ Intel vs AMD, "Caso n.º C-93-20301 PVT, Hallazgos de hecho y conclusiones de derecho tras el módulo "ICE" del juicio". 7 de octubre de 1994. Archivado desde el original el 10 de mayo de 2021.
  11. ^ abc John H. Wharton, The Complete X86, Volumen 1, 1994. MicroDesign Resources , ISBN 1-885330-02-2 . Trata sobre las incorporaciones al conjunto de instrucciones de Am486SXLV en la página 210, Cyrix 486S en la página 273 e IBM 386SLC en la página 298. 
  12. ^ abcdef Potemkin's Hackers Group, OPCODE.LST v4.51, 15 de octubre de 1999. Archivado el 21 de mayo de 2001.
  13. ^ Hans Peter Messmer, "El libro indispensable sobre hardware para PC" (ISBN 0201403994), capítulo 10.6.1, páginas 280-281
  14. ^ Frank van Gilluwe, "El PC indocumentado, segunda edición", 1997, ISBN 0-201-47950-8 , página 120 
  15. ^ Microprocessor Report, UMC Announces Enhanced 486SX-Compatible, (vol 8, no.7, 30 de mayo de 1994) — describe el UMC U5S como un procesador con "SMM integrado, compatible en hardware y software con la implementación de AMD". Archivado el 7 de septiembre de 2024.
  16. ^ AMD, 3DNow! Technology Manual, pub.no. 21928G/0, marzo de 2000. Archivado el 9 de octubre de 2018.
  17. ^ AMD, Manual del programador de la arquitectura AMD64, volumen 5, pub.no.26569, rev 3.16, noviembre de 2021 − proporciona detalles sobre cómo y PFRCPIT1realizan sus iteraciones de Newton-Raphson en las páginas 118 a 125. Archivado el 24 de septiembre de 2023.PFRSQIT1PFRCPIT2
  18. ^ AMD, Geode LX Processors Data Book, pub.no. 33234H, febrero de 2009, página 673. Archivado el 15 de marzo de 2019.
  19. ^ "Requisitos de Windows 10 de 64 bits: ¿Mi CPU admite CMPXCHG16b, PrefetchW y LAHF/SAHF?".
  20. ^ Grzegorz Mazur, instrucciones no documentadas de AMD 3DNow!
  21. ^ ab "Instrucciones no documentadas de 3DNow!". grafi.ii.pw.edu.pl . Archivado desde el original el 30 de enero de 2003 . Consultado el 22 de febrero de 2022 .
  22. ^ AMD, AMD64 Technology: 128-bit SSE5 Instruction Set, pub.no. 43479, rev 3.01, agosto de 2007. Archivado desde el original el 24 de enero de 2009.
  23. ^ AMD, Manual del programador de la arquitectura AMD64, volumen 6: XOP y FMA4 de 128 bits y 256 bits, pub.no. 43479, rev 3.04, noviembre de 2009. Archivado el 11 de octubre de 2018.
  24. ^ Intel, Advanced Vector Extensions Programming Reference, número de pedido 319433-002, marzo de 2008: contiene especificaciones de VPERMIL2PDy VPERMIL2PSen las páginas 411 y 420, así como instrucciones FMA4 en las páginas 612 a 660. Archivado desde el original el 7 de agosto de 2011.
  25. ^ Intel, Advanced Vector Extensions Programming Reference, número de pedido 319433-004, diciembre de 2008 − no contiene especificaciones de VPERMIL2PDy VPERMIL2PSy tiene FMA3 en lugar de FMA4. Archivado el 24 de septiembre de 2023.
  26. ^ Intel Software Network, Cambios recientes en la arquitectura Intel(R) AVX, 29 de enero de 2009. Archivado desde el original el 2 de febrero de 2009.
  27. ^ Hollingsworth, Brent. «Nuevas instrucciones para «Bulldozer» y «Piledriver»» (PDF) . Advanced Micro Devices, Inc. Archivado desde el original (PDF) el 26 de julio de 2014. Consultado el 11 de diciembre de 2014 .
  28. ^ "Ficha técnica de la familia AMD A-Series 16h" (PDF) . amd.com . AMD . Octubre de 2013. Archivado desde el original (PDF) el 7 de noviembre de 2013 . Consultado el 2 de enero de 2014 .
  29. ^ "Manual del programador de la arquitectura AMD64, volumen 3: instrucciones generales y del sistema" (PDF) . amd.com . AMD . Octubre de 2013. Archivado desde el original (PDF) el 4 de enero de 2014 . Consultado el 2 de enero de 2014 .
  30. ^ "tbmintrin.h de GCC 4.8". Archivado desde el original el 23 de febrero de 2017. Consultado el 17 de marzo de 2014 .
  31. ^ Lista de correo Xen-devel, x86/svm: Se abandona el soporte para el perfil ligero de AMD, 20 de mayo de 2019
  32. ^ abc NEC, Manual del usuario de la serie V de 16 bits, septiembre de 2000. Archivado el 2 de diciembre de 2021.
  33. ^ NEC, Manual preliminar del usuario V30MZ, 1998, página 14. Archivado el 2 de diciembre de 2021.
  34. ^ NEC 72291 FPU: se puede encontrar una lista de instrucciones en la Referencia del ensamblador cruzado HP 64873 serie V, páginas F-31 a F-34.
  35. ^ Libro de datos del microprocesador de la serie V de 16 bits de NEC, 1991, pág. 360-361
  36. ^ Hoja de datos del circuito integrado MOS uPD70320 de Renesas. Archivado el 6 de enero de 2022.
  37. ^ abc Renesas, Hoja de datos del microprocesador NEC V55PI de 16 bits, U11775E. Archivado el 27 de julio de 2023.
  38. ^ Libro de datos del microprocesador de la serie V de 16 bits de NEC, 1991, pág. 765-766
  39. ^ "MICROPROCESADOR V55PI DE 16 BITS". págs. 21–22 . Consultado el 18 de enero de 2024 .
  40. ^ Renesas, Manual de instrucciones del usuario de NEC V55PI, U10231J (japonés). Códigos de operación que PUSH/POP DS2/DS3se enumeran en las definiciones de macros en la página 378. Archivado el 11 de diciembre de 2022.
  41. ^ Hoja de datos preliminares del microprocesador NEC V55SC de 16 bits (ODNo ID-8206A, marzo de 1993), páginas 70 y 127. Se encontró el 20 de abril de 2022 buscando "nec v55sc" en datasheetarchive.com. Archivado el 22 de noviembre de 2022.
  42. ^ Manual de referencia del programador NEC uPD70616 (noviembre de 1986), pág. 287. Archivado el 5 de diciembre de 2006.
  43. ^ ZFMicro, ZFx86 System-on-a-chip Data Book 1.0 Rev D, 5 de junio de 2005, sección 2.2.6.3, página 76. Archivado el 11 de febrero de 2009.
  44. ^ Texas Instruments, Guía de referencia del microprocesador TI486, 1993, sección A.14, página 308
  45. ^ Debbie Wiles, Identificación de CPU, archivado el 4 de junio de 2004
  46. ^ Hoja de datos de Cyrix 486SLC/e (1992), sección 2.6.4
  47. ^ ab AMD, Geode LX Processors Data Book, febrero de 2009, ID de publicación 33234H, sección 8.3.4, páginas 643-657. Archivado el 3 de diciembre de 2023.
  48. ^ ab Libro de datos Cyrix 6x86MX, sección 2.15.3
  49. ^ Documentación de NASM 0.98.31 en SourceForge, consulte las secciones B.275 y B.331. Archivado el 21 de julio de 2023.
  50. ^ Sandpile, códigos de operación de 2 bytes para arquitectura x86. Archivado el 3 de noviembre de 2011.
  51. ^ VIA, Cyrix III Processor Data Book, v1.00, 25 de enero de 2000, pág. 103.
  52. ^ Libro de datos de Cyrix MediaGX, sección 4.1.5
  53. ^ AMD, AMD Geode GX1 Processor Data Book, rev 5.0, diciembre de 2003, pág. 226. Archivado el 20 de abril de 2020.
  54. ^ Cyrix, Nota de aplicación 108: Extensiones Cyrix al conjunto de instrucciones multimedia, rev 0.93, 9 de septiembre de 1998, página 7
  55. ^ ab VIA Technologies, VIA C3 Samuel 2 Processor Datasheet, versión 1.10, enero de 2002: hoja de datos disponible públicamente que enumera los códigos de operación 0F 3Fy 8D 84 00 imm32AIS (sin mnemotécnicos) en la página 60. Archivado desde el original el 10 de abril de 2004.
  56. ^ VIA, VIA C3 Processor Alternate Instruction Set Programming Reference, versión 0.25, noviembre de 2002. Consultado el 26 de abril de 2023.
  57. ^ VIA, Nota de aplicación del conjunto de instrucciones alternativas del procesador VIA C3, versión 0.24, 2002, página 14. Consultado el 26 de abril de 2023.
  58. ^ Revista BYTE, noviembre de 1991, página 245
  59. ^ Instituto de Ciencias Oceanográficas, Sonic buoy − Formatter Handbook contiene algunas macros de instrucciones F8680 en la página 34. Archivado el 4 de noviembre de 2018.
  60. ^ La Guía de diseño del sistema PC/Chip F8680 contiene descripciones de muchos de los registros CREG F8680.
  61. ^ Michal Necasek, Más información sobre el C&T Super386
  62. ^ Corexor, Cómo llamar a C&T SCALL de forma segura, 5 de diciembre de 2015. Archivado el 27 de octubre de 2020.
  63. ^ DM&P, M6117D: Sistema en un chip, páginas 31, 34 y 68. Archivado el 20 de julio de 2006.
  64. ^ Intel "Coprocesador matemático Intel287 XL/XLT" (octubre de 1992, número de pedido 290376-003), pág. 33
  65. ^ Intel "Intel387 SL Mobile Math Coprocessor" (febrero de 1992, número de pedido 290427-001), apéndice A. Se encontró el 7 de enero de 2022 buscando "intel387 sl" en datasheetarchive.com. Archivado el 7 de enero de 2022.
  66. ^ Desmond Yuen, Arquitectura SL de Intel: diseño de aplicaciones portátiles, (1993, ISBN 0-07-911336-2) p.127
  67. ^ ab IIT 3c87 Libro de datos del coprocesador de matemáticas avanzado
  68. ^ Harald Feldmann, Lista de 86BUGS de Hamarsoft
  69. ^ de Norbert Juffa "Todo lo que siempre quiso saber sobre los coprocesadores matemáticos", revisión del 1 de octubre de 1994
  70. ^ abc Robert L. Hummel, Referencia técnica del programador de PC Magazine, 1992, ISBN 1-56276-016-5 , páginas 670-672 y 710.