Knowledge (XXG)

MOVAPD

Source 📝

359: 207:
If a memory address operand is not 16-byte-aligned, a general protection exception (#GP) will be raised. This can cause strange interoperability bugs when ordinary code calls an external code that was compiled with the assumption of a 16-byte-aligned stack frame boundary.
32:. This action involves copying a pair of numbers to temporary space in the processor for use in other computations. MOVAPD is one of the fastest ways to accomplish this effect - it is faster than the comparable instruction MOVSD. 424: 400: 393: 419: 40: 348: 386: 72: 17: 230:
Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M
64: 366: 358: 323: 318: 308: 304: 370: 313: 290: 276: 341: 337: 299: 295: 281: 265: 199:). Note, however, that the source and destination operands cannot both be memory addresses. 36: 332: 328: 413: 271: 285: 245: 29: 246:"The Hell that MOVAPS Hath Wrought | Mystery Bail Theater" 224:
Intel 64 and IA-32 Architectures Optimization Reference Manual
25: 24:
is the name for a specific action performable by modern
374: 191:
The destination operand can be either an XMM register (
35:
Specifically, MOVAPD causes a 16-byte-aligned packed-
180:The source operand can be either an XMM register ( 30:2nd-generation Streaming SIMD Extensions (SSE2) 394: 8: 401: 387: 50: 237: 171:void _mm_store_pd(double* p, __m128 a) 43:register or a 16-byte memory region. 7: 355: 353: 373:. You can help Knowledge (XXG) by 14: 18:x86 assembly programming language 425:Programming language topic stubs 357: 1: 122:__m128 _mm_load_pd(double* p) 60:Assembly (AT&T syntax) 441: 352: 39:source to be copied to an 349:x86 instruction listings 68:intrinsic equivalent(s) 57:Assembly (Intel syntax) 195:) or a memory address ( 184:) or a memory address ( 369:-related article is a 367:programming-language 203:Potential Exceptions 382: 381: 232:, November, 2006. 226:, November, 2006. 178: 177: 432: 420:X86 instructions 403: 396: 389: 361: 354: 250: 249: 242: 219: 172: 167: 151: 135: 123: 118: 102: 86: 75: 67: 51: 440: 439: 435: 434: 433: 431: 430: 429: 410: 409: 408: 407: 347: 262: 256: 254: 253: 244: 243: 239: 217: 214: 205: 170: 154: 138: 130: 121: 105: 89: 81: 71: 63: 49: 12: 11: 5: 438: 436: 428: 427: 422: 412: 411: 406: 405: 398: 391: 383: 380: 379: 362: 345: 344: 335: 326: 321: 316: 311: 302: 293: 288: 279: 274: 269: 261: 258: 252: 251: 236: 235: 234: 233: 227: 221: 213: 210: 204: 201: 176: 175: 173: 168: 152: 136: 127: 126: 124: 119: 103: 87: 78: 77: 69: 61: 58: 55: 48: 45: 26:x86 processors 13: 10: 9: 6: 4: 3: 2: 437: 426: 423: 421: 418: 417: 415: 404: 399: 397: 392: 390: 385: 384: 378: 376: 372: 368: 363: 360: 356: 351: 350: 343: 339: 336: 334: 330: 327: 325: 322: 320: 317: 315: 312: 310: 306: 303: 301: 297: 294: 292: 289: 287: 283: 280: 278: 275: 273: 270: 267: 264: 263: 259: 257: 247: 241: 238: 231: 228: 225: 222: 220:documentation 216: 215: 211: 209: 202: 200: 198: 194: 189: 187: 183: 174: 169: 166: 162: 158: 153: 150: 146: 142: 137: 134: 129: 128: 125: 120: 117: 113: 109: 104: 101: 97: 93: 88: 85: 80: 79: 74: 70: 66: 62: 59: 56: 53: 52: 46: 44: 42: 38: 33: 31: 27: 23: 19: 375:expanding it 364: 346: 255: 240: 229: 223: 206: 196: 192: 190: 185: 181: 179: 164: 160: 156: 148: 144: 140: 132: 115: 111: 107: 99: 95: 91: 83: 76:built-in(s) 34: 21: 15: 414:Categories 212:References 131:66 0F 29 82:66 0F 28 324:MOVSLDUP 319:MOVSHDUP 309:MOVMSKPD 305:MOVMSKPS 260:See also 218:gcc info 314:MOVNTPS 291:MOVLHPS 277:MOVHLPS 272:MOVDDUP 268:/MOVAPD 155:MOVAPD 139:MOVAPD 106:MOVAPD 90:MOVAPD 54:Opcode 37:doubles 16:In the 342:MOVUPD 338:MOVUPS 300:MOVLPD 296:MOVLPS 286:MOVHPD 282:MOVHPS 266:MOVAPS 22:MOVAPD 365:This 333:MOVSD 329:MOVSS 47:Usage 28:with 371:stub 197:m128 193:xmm1 186:m128 182:xmm2 165:m128 161:xmm1 157:xmm2 149:xmm2 145:m128 141:xmm1 116:xmm1 112:m128 108:xmm2 100:m128 96:xmm2 92:xmm1 188:). 73:gcc 65:icc 41:XMM 416:: 159:, 147:, 133:/r 114:, 94:, 84:/r 20:, 402:e 395:t 388:v 377:. 340:/ 331:/ 307:/ 298:/ 284:/ 248:. 163:/ 143:/ 110:/ 98:/

Index

x86 assembly programming language
x86 processors
2nd-generation Streaming SIMD Extensions (SSE2)
doubles
XMM
icc
gcc
"The Hell that MOVAPS Hath Wrought | Mystery Bail Theater"
MOVAPS
MOVDDUP
MOVHLPS
MOVHPS
MOVHPD
MOVLHPS
MOVLPS
MOVLPD
MOVMSKPS
MOVMSKPD
MOVNTPS
MOVSHDUP
MOVSLDUP
MOVSS
MOVSD
MOVUPS
MOVUPD
x86 instruction listings
Stub icon
programming-language
stub
expanding it

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.