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

Popular posts from this blog

iphone - Dismissing a UIAlertView -

intellij idea - Update external libraries with intelij and java -

javascript - send data from a new window to previous window in php -