Expand description
Ghidra-style, flat p-code operations and their operands.
These types represent one instruction as a sequence of operations over
varnodes. They deliberately complement, rather than replace, the
source-shaped crate::PcodeAst. A producer lowers nested expressions to
these operations by allocating temporaries in its unique space.
Structs§
- BitRange
Info - Metadata for a named SLEIGH bit range.
- Body
Widths - The widths of one p-code body, and the locals that have none.
- Instruction
Pcode - Flat p-code emitted for one machine instruction.
- LabelId
- Identifies one instruction-local p-code label.
- PcodeOp
- One flat p-code operation.
- Pcode
Plan - Whole-instruction facts a consumer needs before p-code emission starts.
- Varnode
- A storage location or constant used as an input or output of a p-code op.
Enums§
- Opcode
- An opcode from Ghidra’s p-code operation reference.
- Pcode
Lower Error - Failure while lowering source-shaped SLEIGH p-code to flat operations.
- Symbolic
Width - A width resolved before decoding, which may still name an operand.
Traits§
- Pcode
Lowering Context - Producer-specific information required to lower a source-shaped AST.
- Pcode
Sink - Receives resolved p-code operations as an instruction is emitted.
- Width
- A width in the domain a width-inference pass works over.
Functions§
- emit_
instruction - Lowers
astand reports each resolved operation tosink. - infer_
local_ sizes - Infers the local-variable widths of a source p-code body.
- lower_
instruction - Lowers a fully expanded source-shaped AST to Ghidra-style instruction p-code.
- lower_
instruction_ into - Lowers
astand exposes its resolved flat p-code tosinkwithout materializing anInstructionPcodefor the caller. - plan_
instruction - Collects the whole-instruction facts of
astwithout emitting p-code. - plan_
instruction_ with - Plans
astwith local widths the producer has already resolved. - resolve_
body_ widths - Resolves the widths of a body’s locals and reports the ones with none.
Type Aliases§
- Local
Sizes - Widths, in bytes, of the local variables of one p-code body.