mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 07:17:36 +00:00
Fairly major overhaul of MachineInstr & Operand classes
- Inline methods that are mostly a single line anyway - Eliminate several methods that were never called - Group methods a bit more consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4329 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -47,12 +47,16 @@ MachineInstr::replace(MachineOpCode _opCode,
|
||||
void
|
||||
MachineInstr::SetMachineOperandVal(unsigned int i,
|
||||
MachineOperand::MachineOperandType opType,
|
||||
Value* _val,
|
||||
Value* V,
|
||||
bool isdef,
|
||||
bool isDefAndUse)
|
||||
{
|
||||
assert(i < operands.size());
|
||||
operands[i].Initialize(opType, _val);
|
||||
operands[i].opType = opType;
|
||||
operands[i].value = V;
|
||||
operands[i].regNum = -1;
|
||||
operands[i].flags = 0;
|
||||
|
||||
if (isdef || TargetInstrDescriptors[opCode].resultPos == (int) i)
|
||||
operands[i].markDef();
|
||||
if (isDefAndUse)
|
||||
@@ -60,25 +64,36 @@ MachineInstr::SetMachineOperandVal(unsigned int i,
|
||||
}
|
||||
|
||||
void
|
||||
MachineInstr::SetMachineOperandConst(unsigned int i,
|
||||
MachineInstr::SetMachineOperandConst(unsigned i,
|
||||
MachineOperand::MachineOperandType operandType,
|
||||
int64_t intValue)
|
||||
{
|
||||
assert(i < operands.size());
|
||||
assert(TargetInstrDescriptors[opCode].resultPos != (int) i &&
|
||||
"immed. constant cannot be defined");
|
||||
operands[i].InitializeConst(operandType, intValue);
|
||||
|
||||
operands[i].opType = operandType;
|
||||
operands[i].value = NULL;
|
||||
operands[i].immedVal = intValue;
|
||||
operands[i].regNum = -1;
|
||||
operands[i].flags = 0;
|
||||
}
|
||||
|
||||
void
|
||||
MachineInstr::SetMachineOperandReg(unsigned int i,
|
||||
MachineInstr::SetMachineOperandReg(unsigned i,
|
||||
int regNum,
|
||||
bool isdef,
|
||||
bool isDefAndUse,
|
||||
bool isCCReg)
|
||||
{
|
||||
assert(i < operands.size());
|
||||
operands[i].InitializeReg(regNum, isCCReg);
|
||||
|
||||
operands[i].opType =
|
||||
isCCReg? MachineOperand::MO_CCRegister : MachineOperand::MO_MachineRegister;
|
||||
operands[i].value = NULL;
|
||||
operands[i].regNum = regNum;
|
||||
operands[i].flags = 0;
|
||||
|
||||
if (isdef || TargetInstrDescriptors[opCode].resultPos == (int) i)
|
||||
operands[i].markDef();
|
||||
if (isDefAndUse)
|
||||
|
||||
Reference in New Issue
Block a user