assembly - Difference between MOVDQA and MOVAPS x86 instructions? -
assembly - Difference between MOVDQA and MOVAPS x86 instructions? -
i'm looking intel datasheet: intel® 64 , ia-32 architectures software developer’s manual , can't find difference between movdqa , movaps x86 instructions?
in intel datasheet can find both instructions:
this instruction can used load xmm register 128-bit memory location, store contents of xmm register 128-bit memory location, or move info between 2 xmm registers.
the difference is:
to move double quadword or unaligned memory locations, utilize movdqu instruction.
and
to move packed single-precision floating-point values or unaligned memory locations, utilize movups instruction.
but can't find reason why 2 different instructions?
so can explain difference?
in functionality, identical.
on some (but not all) micro-architectures, there timing differences due "domain crossing penalties". reason, 1 should utilize movdqa
when info beingness used integer sse instructions, , movaps
when info beingness used floating-point instructions. more info on subject, consult intel optimization manual, or agner fog's first-class microarchitecture guide. note these delays associated register-register moves instead of loads or stores.
assembly x86 sse mov xmm
Comments
Post a Comment