Intel ADX
Intel ADX (Multi-Precision Add-Carry Instruction Extensions) is Intel's arbitrary-precision arithmetic extension to the x86 instruction set architecture (ISA). Intel ADX was first supported in the Broadwell microarchitecture.{{cite web|url=http://software.intel.com/en-us/articles/intel-software-development-emulator |title=Intel Software Development Emulator |website=software.intel.com |date=July 23, 2013 |access-date=October 16, 2013}}[https://software.intel.com/sites/default/files/319433-013b.pdf Intel Architecture Instruction Set Extensions Programming Reference] (Document number 319433-013B) // Intel, July 2012, Chapter 9: Additional new instructions
The instruction set extension contains just two new instructions, though MULX
from BMI2 is also considered as a part of the large integer arithmetic support.{{cite web |url=http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-large-integer-arithmetic-paper.pdf |title= New Instructions Supporting Large Integer Arithmetic on Intel Architecture Processors |publisher=Intel |access-date=2 January 2015}}
Both instructions are more efficient variants of the existing ADC
instruction, with the difference that each of the two new instructions affects only one flag, where ADC
as a signed addition may set both overflow and carry flags, and as an old-style x86 instruction also reset the rest of the CPU flags. Having two versions affecting different flags means that two chains of additions with carry can be calculated in parallel.
AMD added support in their processors for these instructions starting with Ryzen.
class="wikitable" |
Instruction
! Description |
---|
ADCX
| Adds two unsigned integers plus carry, reading the carry from the carry flag and if necessary setting it there. Does not affect other flags than the carry. |
ADOX
| Adds two unsigned integers plus carry, reading the carry from the overflow flag and if necessary setting it there. Does not affect other flags than the overflow. |
References
{{Reflist}}
External links
- {{cite manual
|title = Intel Architecture Instruction Set Extensions Programming Reference
|date = July 2013
|publisher = Intel
|access-date = 2013-09-10
|url = http://download-software.intel.com/sites/default/files/319433-015.pdf
|archive-url = https://web.archive.org/web/20130929035331/http://download-software.intel.com/sites/default/files/319433-015.pdf
|archive-date = 2013-09-29
|url-status = dead
}}
- {{cite web | url=http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-large-integer-arithmetic-paper.pdf | title=New Instructions Supporting Large Integer Arithmetic on Intel® Architecture Processors}}
{{Intel}}
{{Multimedia extensions}}
{{hardware-stub}}