forked from OSchip/llvm-project
Added a few more methods for creating instructions.
llvm-svn: 2862
This commit is contained in:
parent
6a36c8f2b9
commit
a7f736eeea
|
@ -114,6 +114,18 @@ Create2OperandInstr(MachineOpCode opCode, Value* argVal1, Value* argVal2)
|
|||
return M;
|
||||
}
|
||||
|
||||
inline MachineInstr*
|
||||
Create2OperandInstr(MachineOpCode opCode,
|
||||
Value* argVal1, MachineOperand::MachineOperandType type1,
|
||||
Value* argVal2, MachineOperand::MachineOperandType type2)
|
||||
{
|
||||
MachineInstr* M = new MachineInstr(opCode);
|
||||
M->SetMachineOperandVal(0, type1, argVal1);
|
||||
M->SetMachineOperandVal(1, type2, argVal2);
|
||||
return M;
|
||||
}
|
||||
|
||||
|
||||
inline MachineInstr*
|
||||
Create2OperandInstr_UImmed(MachineOpCode opCode,
|
||||
unsigned int unextendedImmed, Value* argVal2)
|
||||
|
@ -136,6 +148,16 @@ Create2OperandInstr_SImmed(MachineOpCode opCode,
|
|||
return M;
|
||||
}
|
||||
|
||||
inline MachineInstr*
|
||||
Create2OperandInstr_Addr(MachineOpCode opCode,
|
||||
Value* label, Value* argVal2)
|
||||
{
|
||||
MachineInstr* M = new MachineInstr(opCode);
|
||||
M->SetMachineOperandVal(0, MachineOperand::MO_PCRelativeDisp, label);
|
||||
M->SetMachineOperandVal(1, MachineOperand::MO_VirtualRegister, argVal2);
|
||||
return M;
|
||||
}
|
||||
|
||||
inline MachineInstr*
|
||||
Create2OperandInstr_Reg(MachineOpCode opCode,
|
||||
Value* argVal1, unsigned int regNum)
|
||||
|
@ -204,6 +226,17 @@ Create3OperandInstr_SImmed(MachineOpCode opCode, Value* argVal1,
|
|||
return M;
|
||||
}
|
||||
|
||||
inline MachineInstr*
|
||||
Create3OperandInstr_Addr(MachineOpCode opCode, Value* argVal1,
|
||||
Value* label, Value* argVal3)
|
||||
{
|
||||
MachineInstr* M = new MachineInstr(opCode);
|
||||
M->SetMachineOperandVal(0, MachineOperand::MO_VirtualRegister, argVal1);
|
||||
M->SetMachineOperandVal(1, MachineOperand::MO_PCRelativeDisp, label);
|
||||
M->SetMachineOperandVal(2, MachineOperand::MO_VirtualRegister, argVal3);
|
||||
return M;
|
||||
}
|
||||
|
||||
inline MachineInstr*
|
||||
Create3OperandInstr_Reg(MachineOpCode opCode, Value* argVal1,
|
||||
unsigned int regNum, Value* argVal3)
|
||||
|
|
Loading…
Reference in New Issue