|
decompiler 1.0.0
|
Description of how a temporary register is being used within a Constructor. More...
#include <slgh_compile.hh>
Public Member Functions | |
| OptimizeRecord (uintb offset, int4 size) | |
| Construct a record, initializing counts. More... | |
| OptimizeRecord (vector< OptimizeRecord * > &records) | |
| Constructor merging the given overlapping records into a single record. More... | |
| void | updateRead (int4 i, int4 inslot, int4 secNum) |
| Mark this range as being read by a specific op. More... | |
| void | updateWrite (int4 i, int4 secNum) |
| Mark this range as being written by a specific op. More... | |
| void | updateExport (void) |
| Mark this range as exported from the constructor. | |
| void | updateCombine (OptimizeRecord &that) |
| Merge another record's read and write references into this. More... | |
Description of how a temporary register is being used within a Constructor.
This counts reads and writes of the register. If the register is read only once, the particular p-code op and input slot reading it is recorded. If the register is written only once, the particular p-code op writing it is recorded.
|
inline |
Construct a record, initializing counts.
| offset | is the starting offset of the temporary range |
| size | is the number of bytes in the range |
References inslot, offset, opttype, readcount, readop, readsection, size, writecount, writeop, and writesection.
| ghidra::ConsistencyChecker::OptimizeRecord::OptimizeRecord | ( | vector< OptimizeRecord * > & | records | ) |
Constructor merging the given overlapping records into a single record.
| records | is the list of records to merge |
References inslot, offset, opttype, readcount, readop, readsection, size, updateCombine(), writecount, writeop, and writesection.
| void ghidra::ConsistencyChecker::OptimizeRecord::updateCombine | ( | ConsistencyChecker::OptimizeRecord & | that | ) |
Merge another record's read and write references into this.
| that | is the other record to pull read/write info from |
References inslot, readcount, readop, readsection, writecount, writeop, and writesection.
Referenced by OptimizeRecord().
| void ghidra::ConsistencyChecker::OptimizeRecord::updateRead | ( | int4 | i, |
| int4 | inslot, | ||
| int4 | secNum | ||
| ) |
Mark this range as being read by a specific op.
| i | is the index of the op reading the range |
| inslot | is the input slot of the op reading the range |
| secNum | is the constructor section number of the op |
| void ghidra::ConsistencyChecker::OptimizeRecord::updateWrite | ( | int4 | i, |
| int4 | secNum | ||
| ) |
Mark this range as being written by a specific op.
| i | is the index of the op writing to the range |
| secNum | is the constructor section number of the op |
Referenced by ghidra::ConsistencyChecker::examineVn().