ia-32_instruction-set-ref_a-m

Additional registers xmm8 xmm15 operation dest630

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: = 1. Vol. 2 3-213 INSTRUCTION SET REFERENCE, A-M #UD If an unmasked SIMD floating-point exception and CR4.OSXMMEXCPT[bit 10] = 0. If CR0.EM[bit 2] = 1. If CR4.OSFXSR[bit 9] = 0. If CPUID.01H:EDX.SSE2[bit 26] = 0. #AC(0) If alignment checking is enabled and an unaligned memory reference is made while the current privilege level is 3. 3-214 Vol. 2 INSTRUCTION SET REFERENCE, A-M CVTPS2PI--Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers Opcode 0F 2D /r Instruction CVTPS2PI mm, xmm/m64 64-Bit Mode Valid Compat/ Leg Mode Valid Description Convert two packed single-precision floating-point values from xmm/m64 to two packed signed doubleword integers in mm. Description Converts two packed single-precision floating-point values in the source operand (second operand) to two packed signed doubleword integers in the destination operand (first operand). The source operand can be an XMM register or a 128-bit memory location. The destination operand is an MMX technology register. When the source operand is an XMM register, the two single-precision floating-point values are contained in the low quadword of the register. When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register. If a converted result is larger than the maximum signed doubleword integer, the floating-point invalid exception is raised, and if this exception is masked, the indefinite integer value (80000000H) is returned. CVTPS2PI causes a transition from x87 FPU to MMX technology operation (that is, the x87 FPU top-of-stack pointer is set to 0 and the x87 FPU tag word is set to all 0s [valid]). If this instruction is executed while an x87 FPU floating-point exception is pending, the exception is handled before the CVTPS2PI instruction is executed. In 64-bit mode, use of the REX.R prefix permits this instruction to access additional registers (XMM8-XMM15). Operation DEST[31:0] Convert_Single_Precision_Floating_Point_To_Integer(SRC[31:0]); DEST[63:32] Convert_Single_Precision_Floating_Point_To_Integer(SRC[63:32]); Intel C/C++ Compiler Intrinsic Equivalent CVTPS2PI __m64 _mm_cvtps_pi32(__m128 a) SIMD Floating-Point Exceptions Invalid, Precision. Vol. 2 3-215 INSTRUCTION SET REFERENCE, A-M Protected Mode Exceptions #GP(0) #SS(0) #PF(fault-code) #MF #NM #XM #UD For an illegal memory operand effective address in the CS, DS, ES, FS or GS segments. For an illegal address in the SS segment. For a page fault. If there is a pending x87 FPU exception. If CR0.TS[bit 3] = 1. If an unmasked SIMD floating-point exception and CR4.OSXMMEXCPT[bit 10] = 1. If an unmasked SIMD floating-point exception and CR4.OSXMMEXCPT[bit 10] = 0. If CR0.EM[bit 2] = 1. If CR4.OSFXSR[bit 9] = 0. If CPUID.01H:EDX.SSE[bit 25] = 0. #AC(0) If alignment checking is enabled and an unaligned memory reference is made while the current privilege level is 3. Real-Address Mode Exceptions GP(0) #NM #MF #XM #UD If any part of the operand lies outside t...
View Full Document

Ask a homework question - tutors are online