|
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... | |
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, TransformManager::fd, follow, opc, Funcdata::opInsertBefore(), Funcdata::opInsertBegin(), and replacement.
|
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, TransformVar::createReplacement(), TransformManager::fd, follow, input, Funcdata::newOp(), op, op_preexisting, opc, Funcdata::opInsertBefore(), Funcdata::opInsertBegin(), Funcdata::opInsertInput(), Funcdata::opRemoveInput(), Funcdata::opSetOpcode(), Funcdata::opUnsetInput(), output, replacement, and special.
1.8.17