x86 Instruction Set Reference
ADDSUBPD
Packed Double-FP Add/Subtract
| Opcode | Mnemonic | Description |
|---|---|---|
66 0F D0 /r |
ADDSUBPD xmm1, xmm2/m128 |
Add/Subtract packed DP FP numbers from xmm2/m128 to xmm1. |
| Description |
|---|
|
Adds the double-precision floating-point values in the high quadword of the source and destination operands and stores the result in the high quadword of the destination operand. Subtracts the double-precision floating-point value in the low quadword of the source operand from the low quadword of the destination operand and stores the result in the low quadword of the destination operand. |
| Operation |
|---|
xmm1[0..63] = xmm1[0..63] - xmm2/m128[0..63]; xmm1[64..127] = xmm1[64..127] + xmm2/m128[64..127]; |
| Exceptions |
|---|
| When the source operand is a memory operand, it must be aligned on a 16-byte boundary or a general-protection exception (#GP) will be generated. |
| Numeric Exceptions |
|---|
| Overflow, Underflow, Invalid, Precision, Denormal. |
| Protected Mode Exceptions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Real-Address Mode Exceptions | ||||||||
|---|---|---|---|---|---|---|---|---|
|
| Virtual-8086 Mode Exceptions | ||||||||
|---|---|---|---|---|---|---|---|---|
|
| Instruction | Latency | Throughput | Execution Unit |
|---|---|---|---|
CPUID | 0F3n | 0F3n | 0F3n |
ADDSUBPD | 5 | 2 | FP_ADD |