|
decompiler
1.0.0
|
Placeholder node for PcodeOp that will exist after a transform is applied to a function. More...
#include <transform.hh>
Public Types | |
| enum | { op_replacement = 1, op_preexisting = 2, indirect_creation = 4, indirect_creation_possible_out = 8 } |
| Special annotations on new pcode ops. More... | |
Public Member Functions | |
| TransformVar * | getOut (void) const |
| Get the output placeholder variable for this operator. | |
| TransformVar * | getIn (int4 i) const |
| Get the i-th input placeholder variable for this. | |
Private Member Functions | |
| void | createReplacement (Funcdata *fd) |
| Create the new/modified op this placeholder represents. More... | |
| bool | attemptInsertion (Funcdata *fd) |
| Try to put the new PcodeOp into its basic block. More... | |
Private Attributes | |
| PcodeOp * | op |
| Original op which this is splitting (or null) | |
| PcodeOp * | replacement |
| The new replacement op. | |
| OpCode | opc |
| Opcode of the new op. | |
| uint4 | special |
| Special handling code when creating. | |
| TransformVar * | output |
| Varnode output. | |
| vector< TransformVar * > | input |
| Varnode inputs. | |
| TransformOp * | follow |
| The following op after this (if not null) | |
Friends | |
| class | TransformManager |
| class | TransformVar |
Placeholder node for PcodeOp that will exist after a transform is applied to a function.
| anonymous enum |
|
private |
Try to put the new PcodeOp into its basic block.
| fd | is the function into which the PcodeOp will be inserted |
References CPUI_MULTIEQUAL, Funcdata::opInsertBefore(), and Funcdata::opInsertBegin().
|
private |
Create the new/modified op this placeholder represents.
Create a new PcodeOp or modify an existing one so that it matches this placeholder description. Go ahead an insert the new PcodeOp into the basic block if possible
| fd | is the function in which to make the modifications |
References CPUI_MULTIEQUAL, Funcdata::newOp(), op_preexisting, Funcdata::opInsertBefore(), Funcdata::opInsertBegin(), Funcdata::opInsertInput(), Funcdata::opRemoveInput(), Funcdata::opSetOpcode(), and Funcdata::opUnsetInput().
1.8.11