Happy 2006! I was compiling LZMA SDK (http://www.7-zip.org/, LzmaDecode.c) and just for curiosity I looked at output assembler. I noted that when PIC is enabled (-fpic, Linux Intel) ebx is reserved to global pointer. However LzmaDecode do not access any global data and do not call other functions (no relocations at all) so why not use ebx register? -fpic make compiler just not use ebx. I tried using different versions (gcc 3.4.4 from Fedora Core 3 and 4.0.2 from Fedora Core 4) with same result.
Frediano Ziglio (aka freddy77)