Represents the registers of a function, and keeps track of the operations being performed on them.
More...
|
SyntaxNode[] | Storage [get, set] |
| Represents the contents of each register as a JavaScript syntax object. More...
|
|
int[] | RegisterUsages [get, set] |
| Represents the amount of times the value of each register has been referenced while the register retains that value.
Each time a register is referenced in an operand, the instruction visitor calls MarkUsage(uint). When the value of the register is changed, the usage is reset to 0. More...
|
|
int | Length [get] |
| The amount of registers contained in the Storage array. More...
|
|
SyntaxNode | this[uint register] [get, set] |
| Gets the syntax located at the given register. If a call expression is located at a register which is being overriden with a new value, the call expression is immediately added to the source tree, and then the register is replaced with the argument. More...
|
|
SyntaxNode | this[int index] [get, set] |
|
Represents the registers of a function, and keeps track of the operations being performed on them.
◆ RegisterTracker()
Hasmer.Decompiler.RegisterTracker.RegisterTracker |
( |
FunctionState |
state, |
|
|
uint |
registers |
|
) |
| |
|
inline |
Creates a new RegisterTracker given an amount of registers to store and keep track of.
◆ MarkUsage()
void Hasmer.Decompiler.RegisterTracker.MarkUsage |
( |
uint |
register | ) |
|
|
inline |
Marks a usage of a register. Each time a register is used as a value in an operand, this method should be invoked with the operand as the parameter.
See RegisterUsages.
◆ MarkUsages()
void Hasmer.Decompiler.RegisterTracker.MarkUsages |
( |
params uint[] |
registers | ) |
|
|
inline |
◆ Length
int Hasmer.Decompiler.RegisterTracker.Length |
|
get |
The amount of registers contained in the Storage array.
◆ RegisterUsages
int [] Hasmer.Decompiler.RegisterTracker.RegisterUsages |
|
getset |
Represents the amount of times the value of each register has been referenced while the register retains that value.
Each time a register is referenced in an operand, the instruction visitor calls MarkUsage(uint). When the value of the register is changed, the usage is reset to 0.
◆ Storage
SyntaxNode [] Hasmer.Decompiler.RegisterTracker.Storage |
|
getset |
Represents the contents of each register as a JavaScript syntax object.
◆ this[uint register]
SyntaxNode Hasmer.Decompiler.RegisterTracker.this[uint register] |
|
getset |
Gets the syntax located at the given register. If a call expression is located at a register which is being overriden with a new value, the call expression is immediately added to the source tree, and then the register is replaced with the argument.
The documentation for this class was generated from the following file:
- libhasmer/Decompiler/RegisterTracker.cs