03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

APPLICATION PROGRAMMING MODEL<br />

<strong>Instruction</strong> Type<br />

AVX, FMA, AVX2,<br />

SSE<br />

Table 2-3. Alignment Faulting Conditions when Memory Access is Not Aligned<br />

EFLAGS.AC==1 && Ring-3 && CR0.AM == 1 0 1<br />

16- or 32-byte “explicitly unaligned” loads and stores (see Table 2-5) no fault no fault<br />

VEX op YMM, m256 no fault no fault<br />

VEX op XMM, m128 no fault no fault<br />

“explicitly aligned” loads and stores (see Table 2-4) #GP(0) #GP(0)<br />

2, 4, or 8-byte loads and stores no fault #AC(0)<br />

16 byte “explicitly unaligned” loads and stores (see Table 2-5) no fault no fault<br />

op XMM, m128 #GP(0) #GP(0)<br />

“explicitly aligned” loads and stores (see Table 2-4) #GP(0) #GP(0)<br />

2, 4, or 8-byte loads and stores no fault #AC(0)<br />

Table 2-4. <strong>Instruction</strong>s Requiring Explicitly Aligned Memory<br />

Require 16-byte alignment Require 32-byte alignment<br />

(V)MOVDQA xmm, m128 VMOVDQA ymm, m256<br />

(V)MOVDQA m128, xmm VMOVDQA m256, ymm<br />

(V)MOVAPS xmm, m128 VMOVAPS ymm, m256<br />

(V)MOVAPS m128, xmm VMOVAPS m256, ymm<br />

(V)MOVAPD xmm, m128 VMOVAPD ymm, m256<br />

(V)MOVAPD m128, xmm VMOVAPD m256, ymm<br />

(V)MOVNTPS m128, xmm VMOVNTPS m256, ymm<br />

(V)MOVNTPD m128, xmm VMOVNTPD m256, ymm<br />

(V)MOVNTDQ m128, xmm VMOVNTDQ m256, ymm<br />

(V)MOVNTDQA xmm, m128 VMOVNTDQA ymm, m256<br />

(V)MOVDQU xmm, m128<br />

(V)MOVDQU m128, m128<br />

(V)MOVUPS xmm, m128<br />

(V)MOVUPS m128, xmm<br />

(V)MOVUPD xmm, m128<br />

(V)MOVUPD m128, xmm<br />

VMOVDQU ymm, m256<br />

VMOVDQU m256, ymm<br />

VMOVUPS ymm, m256<br />

VMOVUPS m256, ymm<br />

VMOVUPD ymm, m256<br />

VMOVUPD m256, ymm<br />

Table 2-5. <strong>Instruction</strong>s Not Requiring Explicit Memory Alignment<br />

2-10 Ref. # 319433-014

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!