mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-29 22:52:18 +00:00
Shrink and reorder some fields in MCOperandInfo to fit it in 8 bytes to reduce size of static tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152524 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f522ce1f18
commit
39bdc5526f
@ -58,17 +58,17 @@ public:
|
||||
/// if the operand is a register. If isLookupPtrRegClass is set, then this is
|
||||
/// an index that is passed to TargetRegisterInfo::getPointerRegClass(x) to
|
||||
/// get a dynamic register class.
|
||||
short RegClass;
|
||||
int16_t RegClass;
|
||||
|
||||
/// Flags - These are flags from the MCOI::OperandFlags enum.
|
||||
unsigned short Flags;
|
||||
uint8_t Flags;
|
||||
|
||||
/// OperandType - Information about the type of the operand.
|
||||
uint8_t OperandType;
|
||||
|
||||
/// Lower 16 bits are used to specify which constraints are set. The higher 16
|
||||
/// bits are used to specify the value of constraints (4 bits each).
|
||||
unsigned Constraints;
|
||||
|
||||
/// OperandType - Information about the type of the operand.
|
||||
MCOI::OperandType OperandType;
|
||||
uint32_t Constraints;
|
||||
/// Currently no other information.
|
||||
|
||||
/// isLookupPtrRegClass - Set if this operand is a pointer value and it
|
||||
|
@ -107,6 +107,11 @@ InstrInfoEmitter::GetOperandInfo(const CodeGenInstruction &Inst) {
|
||||
if (Inst.Operands[i].Rec->isSubClassOf("OptionalDefOperand"))
|
||||
Res += "|(1<<MCOI::OptionalDef)";
|
||||
|
||||
// Fill in operand type.
|
||||
Res += ", MCOI::";
|
||||
assert(!Inst.Operands[i].OperandType.empty() && "Invalid operand type.");
|
||||
Res += Inst.Operands[i].OperandType;
|
||||
|
||||
// Fill in constraint info.
|
||||
Res += ", ";
|
||||
|
||||
@ -122,11 +127,6 @@ InstrInfoEmitter::GetOperandInfo(const CodeGenInstruction &Inst) {
|
||||
" << 16) | (1 << MCOI::TIED_TO))";
|
||||
}
|
||||
|
||||
// Fill in operand type.
|
||||
Res += ", MCOI::";
|
||||
assert(!Inst.Operands[i].OperandType.empty() && "Invalid operand type.");
|
||||
Res += Inst.Operands[i].OperandType;
|
||||
|
||||
Result.push_back(Res);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user