Package ghidra.pcode.emu.jit
Class JitPassage.DecodeErrorPcodeOp
java.lang.Object
ghidra.program.model.pcode.PcodeOp
ghidra.pcode.emu.jit.JitPassage.DecodedPcodeOp
ghidra.pcode.emu.jit.JitPassage.DecodeErrorPcodeOp
- Enclosing class:
JitPassage
A synthetic p-code op denoting a decode error
The decoder may encounter several decode errors as it selects and decodes the passage. An
instruction is selected because the JIT believes it may be executed by the emulator.
(Predicting this and making good selections is a matter of further research.) Encounting a
decode error along a possible path is not cause to throw an exception. However; if the
emulator does in fact attempt to execute the bytes which it can't decode, then we do throw
the exception. This p-code op is synthesized where such decode errors occur, and the
translator will generate code that actually throw the exception. Note that the error message
is placed in the corresponding JitPassage.ErrBranch
.
-
Field Summary
Fields inherited from class ghidra.program.model.pcode.PcodeOp
BOOL_AND, BOOL_NEGATE, BOOL_OR, BOOL_XOR, BRANCH, BRANCHIND, CALL, CALLIND, CALLOTHER, CAST, CBRANCH, COPY, CPOOLREF, EXTRACT, FLOAT_ABS, FLOAT_ADD, FLOAT_CEIL, FLOAT_DIV, FLOAT_EQUAL, FLOAT_FLOAT2FLOAT, FLOAT_FLOOR, FLOAT_INT2FLOAT, FLOAT_LESS, FLOAT_LESSEQUAL, FLOAT_MULT, FLOAT_NAN, FLOAT_NEG, FLOAT_NOTEQUAL, FLOAT_ROUND, FLOAT_SQRT, FLOAT_SUB, FLOAT_TRUNC, INDIRECT, INSERT, INT_2COMP, INT_ADD, INT_AND, INT_CARRY, INT_DIV, INT_EQUAL, INT_LEFT, INT_LESS, INT_LESSEQUAL, INT_MULT, INT_NEGATE, INT_NOTEQUAL, INT_OR, INT_REM, INT_RIGHT, INT_SBORROW, INT_SCARRY, INT_SDIV, INT_SEXT, INT_SLESS, INT_SLESSEQUAL, INT_SREM, INT_SRIGHT, INT_SUB, INT_XOR, INT_ZEXT, LOAD, LZCOUNT, MULTIEQUAL, NEW, PCODE_MAX, PIECE, POPCOUNT, PTRADD, PTRSUB, RETURN, SEGMENTOP, STORE, SUBPIECE, UNIMPLEMENTED
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct a p-code op representing an instruction decode error. -
Method Summary
Methods inherited from class ghidra.pcode.emu.jit.JitPassage.DecodedPcodeOp
getAt, getContext, getCounter, isInstructionStart
Methods inherited from class ghidra.program.model.pcode.PcodeOp
decode, encodeRaw, getBasicIter, getInput, getInputs, getInsertIter, getMnemonic, getMnemonic, getNumInputs, getOpcode, getOpcode, getOutput, getParent, getSeqnum, getSlot, hashCode, insertInput, isAssignment, isCommutative, isCommutative, isDead, removeInput, setInput, setOpcode, setOrder, setOutput, setTime, toString
-
Constructor Details
-
DecodeErrorPcodeOp
Construct a p-code op representing an instruction decode error.- Parameters:
at
- the address and decode context where the error occurred
-