[X86][MC][NFC] Reduce the parameters of functions in X86MCCodeEmitter(Part II)
authorShengchen Kan <shengchen.kan@intel.com>
Fri, 17 Apr 2020 03:17:38 +0000 (11:17 +0800)
committerShengchen Kan <shengchen.kan@intel.com>
Fri, 17 Apr 2020 05:32:19 +0000 (13:32 +0800)
commit3017580c7961397f96e9481abf82bbf874bb2633
tree741f93e8248518176f1c7207f803f7462e0e05fe
parent4bd186c0ff76063de9de5507e1e512f7ab4372f1
[X86][MC][NFC] Reduce the parameters of functions in X86MCCodeEmitter(Part II)

Summary:
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.

Reviewers: craig.topper, pengfei

Reviewed By: craig.topper

Subscribers: annita.zhang, craig.topper, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78276
llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp