package org.jpc.emulator.execution.opcodes.rm;
import org.jpc.emulator.execution.*;
import org.jpc.emulator.execution.decoder.*;
import org.jpc.emulator.processor.*;
import org.jpc.emulator.processor.fpu64.*;
import static org.jpc.emulator.processor.Processor.*;
public class btc_o32_Ed_Gd extends Executable
{
final int op1Index;
final int op2Index;
public btc_o32_Ed_Gd(int blockStart, Instruction parent)
{
super(blockStart, parent);
op1Index = Processor.getRegIndex(parent.operand[0].toString());
op2Index = Processor.getRegIndex(parent.operand[1].toString());
}
public Branch execute(Processor cpu)
{
Reg op1 = cpu.regs[op1Index];
Reg op2 = cpu.regs[op2Index];
int bit = 1 << op2.get32();
cpu.cf = (0 != (op1.get32() & bit));
cpu.flagStatus &= NCF;
op1.set32((op1.get32()^bit));
return Branch.None;
}
public boolean isBranch()
{
return false;
}
public String toString()
{
return this.getClass().getName();
}
}