13.07.2015 Views

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

STACK ALIGNMENTD.2 INLINED ASSEMBLY AND EBXWhen using aligned frames, the EBX register generally should not be modified ininlined assembly blocks since EBX is used to keep track of the argument block.Programmers may modify EBX only if they do not need to access the arguments <strong>and</strong>provided they save EBX <strong>and</strong> restore it before the end of the function (since ESP isrestored relative to EBX in the function’s epilog).NOTEDo not use the EBX register in inline assembly functions that usedynamic stack alignment for double, __m<strong>64</strong>, <strong>and</strong> __m128 localvariables unless you save <strong>and</strong> restore EBX each time you use it. TheIntel C++ Compiler uses the EBX register to control alignment ofvariables of these types, so the use of EBX, without preserving it, willcause unexpected program execution.D-7

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

Saved successfully!

Ooh no, something went wrong!