package org.jpc.emulator.execution.opcodes.vm;
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 InvalidOpcode extends Executable
{
final int blockLength;
final int instructionLength;
String error;
public InvalidOpcode(int blockStart, int eip, int prefices, PeekableInputStream input)
{
super(blockStart, eip);
instructionLength = (int)input.getAddress()-eip;
blockLength = (int)input.getAddress()-blockStart;
input.seek(-instructionLength);
Instruction in = Disassembler.disassemble(input, Prefices.isAddr16(prefices) ? 32 : 16);
error = in.toString() + ", x86 byte = " + Disassembler.getRawBytes(input, 0);
}
public Branch execute(Processor cpu)
{
if (true) throw ProcessorException.UNDEFINED;
return Branch.Jmp_Unknown;
}
public boolean isBranch()
{
return true;
}
public String toString()
{
return this.getClass().getName();
}
}