3 ms·
https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64/insts.lisp#L2978 https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64... has 0x66 0x0f 0x1
by pkhuong 12y ago
https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64/insts.lisp#L2978 https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64... has
0x66 0x0f 0x1f 0x84 0x00 0x00 0x00 0x00 0x00
That's a size override prefix, followed by the dedicated NOP instruction (0x0f 0x1f), and finally 6 bytes to encode an effective address with offset.
- makomk 12y agoMulti-byte nops have compatibility issues on some of the more obscure 32-bit x86 CPUs, unfortunately: https://sourceware.org/bugzilla/show_bug.cgi?id=13675 https://sourceware.org/bugzilla/show_bug.cgi?id=13675
- pkhuong 12y agoRight… you have to check cpuid for the long nop feature. I believe 0x66 0x90 is compatible (but slow, I would expect) with older CPUs.