22-Dec-2009: Rare x86 instruction

Together with LOOP x86 instruction, it seems, one more os rare used: RCL (rotate through carry left).

LOOP in known as not optimized by Intel anymore, probably this is the reason modern compilers do not generate code with it.

RCL, probably, compilers blind spot:

... absent in Oracle 11.1.0.7.0 Win32 oracle (compiled by Intel C++).

... absent in ntoskrnl.exe file (windows kernel) from Windows 7 x64 (MS Visual C compiler).

... absent in ntoskrnl.exe file (windows kernel) from Windows 2003 x86 (MS Visual C compiler): but present only in RtlExtendedLargeIntegerDivide function, and this might be inline assembler code case.

Linux kernel 2.6.18 x86 compiled with GCC 4.1.2 - only few occurrences, but it seems, it is just incorrectly disassembled, because it lay right after UD2 (generates an invalid opcode) instructions.


This open sourced site and this page in particular is hosted on GitHub. Patches, suggestions and comments are welcome.


→ [list of blog posts]

Please drop me email about any bug(s) and suggestion(s): dennis(@)yurichev.com.