[llvm] [X86][MC] Support encoding of EGPR for APX (PR #71909)
Shengchen Kan via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 12 20:38:19 PST 2023
================
@@ -184,18 +233,23 @@ class X86OpcodePrefixHelper {
}
X86OpcodePrefixHelper(const MCRegisterInfo &MRI)
- : W(0), R(0), X(0), B(0), VEX_4V(0), VEX_L(0), VEX_PP(0), VEX_5M(0),
- EVEX_R2(0), EVEX_z(0), EVEX_L2(0), EVEX_b(0), EVEX_V2(0), EVEX_aaa(0),
- MRI(MRI) {}
+ : W(0), R(0), X(0), B(0), M(0), R2(0), X2(0), B2(0), VEX_4V(0), VEX_L(0),
+ VEX_PP(0), VEX_5M(0), EVEX_z(0), EVEX_L2(0), EVEX_b(0), EVEX_V2(0),
+ EVEX_aaa(0), MRI(MRI) {}
void setLowerBound(PrefixKind K) { Kind = K; }
PrefixKind determineOptimalKind() {
switch (Kind) {
case None:
- Kind = (W | R | X | B) ? REX : None;
+ // Not M bit here by intention b/c
+ // 1. No guarantee that REX2 is supported by arch w/o explict EGPR
+ // 2. REX2 is longer than 0FH
----------------
KanRobert wrote:
B/c M bit is used to represent map 1 in one bit. `0FH` does the same thing.
https://github.com/llvm/llvm-project/pull/71909
More information about the llvm-commits
mailing list