We determine the REX prefix used by instruction in determineREXPrefix,
and this value is used in `emitMemModRMByte' and used as the return
value of emitOpcodePrefix.
Before this patch, REX was passed as reference to emitPrefixImpl, it
is strange and not necessary, e.g, we have to write
bool Rex = false; emitPrefixImpl(CurOp, CurByte, Rex, MI, STI, OS);
in emitPrefix even if Rex will not be used.
So we let HasREX be the return value of emitPrefixImpl. The HasREX is passed
from emitREXPrefix to emitOpcodePrefix and then to
emitPrefixImpl. This makes sense since REX is a kind of opcode prefix
and of course is a prefix.
Comment to myself: plan to eliminate CurByte as possible by using OS.tell() in Part III.