internal void ProcessOverrideOperand(x86Instruction instruction)
{
x86OperandType operandType = instruction.OpCode.GetOverrideOperandType();
if (operandType.HasFlag(x86OperandType.ForceDwordPointer))
{
if (instruction.operand2 != null)
if (instruction.operand2.Value is uint)
instruction.operand2 = CreatePtr((uint)instruction.operand2.Value, OperandType.DwordPointer);
else
instruction.operand2.ValueType = OperandType.DwordPointer;
else
if (instruction.operand1.Value is uint)
instruction.operand1 = CreatePtr((uint)instruction.operand1.Value, OperandType.DwordPointer);
else
instruction.operand1.ValueType = OperandType.DwordPointer;
}
if (operandType.HasFlag(x86OperandType.OverrideOperandOrder))
{
Operand temp = instruction.operand1;
instruction.operand1 = instruction.operand2;
instruction.operand2 = temp;
}
}