mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-03 14:31:10 +00:00
Add method MachineInstr::replace to rewrite a machine instruction in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
32f81a3469
commit
e8b57ef260
@ -295,6 +295,18 @@ public:
|
|||||||
unsigned numOperands,
|
unsigned numOperands,
|
||||||
OpCodeMask _opCodeMask = 0x0);
|
OpCodeMask _opCodeMask = 0x0);
|
||||||
inline ~MachineInstr () {}
|
inline ~MachineInstr () {}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Support to rewrite a machine instruction in place: for now, simply
|
||||||
|
// replace() and then set new operands with Set.*Operand methods below.
|
||||||
|
//
|
||||||
|
void replace (MachineOpCode _opCode,
|
||||||
|
unsigned numOperands,
|
||||||
|
OpCodeMask _opCodeMask = 0x0);
|
||||||
|
|
||||||
|
//
|
||||||
|
// The op code. Note that MachineOpCode is a target-specific type.
|
||||||
|
//
|
||||||
const MachineOpCode getOpCode () const { return opCode; }
|
const MachineOpCode getOpCode () const { return opCode; }
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -27,6 +27,22 @@ MachineInstr::MachineInstr(MachineOpCode _opCode,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Support for replacing opcode and operands of a MachineInstr in place.
|
||||||
|
// This only resets the size of the operand vector and initializes it.
|
||||||
|
// The new operands must be set explicitly later.
|
||||||
|
//
|
||||||
|
void
|
||||||
|
MachineInstr::replace(MachineOpCode _opCode,
|
||||||
|
unsigned numOperands,
|
||||||
|
OpCodeMask _opCodeMask)
|
||||||
|
{
|
||||||
|
opCode = _opCode;
|
||||||
|
opCodeMask = _opCodeMask;
|
||||||
|
operands.clear();
|
||||||
|
operands.resize(numOperands);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MachineInstr::SetMachineOperandVal(unsigned int i,
|
MachineInstr::SetMachineOperandVal(unsigned int i,
|
||||||
MachineOperand::MachineOperandType opType,
|
MachineOperand::MachineOperandType opType,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user