Creates a new code relocator for copying ARM instructions from one memory location to another, taking care to adjust position-dependent instructions accordingly.
Source address to copy instructions from.
ThumbWriter pointed at the desired target memory address.
Indicates whether end-of-block has been reached, i.e. we've reached a branch of any kind, like CALL, JMP, BL, RET.
Indicates whether end-of-input has been reached, e.g. we've reached JMP/B/RET, an instruction after which there may or may not be valid code.
Latest Instruction
read so far. Starts out null
and changes
on every call to readOne()
.
Peeks at the next Instruction
to be written or skipped.
Peeks at the address of the next instruction to be written or skipped.
Reads the next instruction into the relocator's internal buffer and returns the number of bytes read so far, including previous calls.
You may keep calling this method to keep buffering, or immediately
call either writeOne()
or skipOne()
. Or, you can buffer up
until the desired point and then call writeAll()
.
Returns zero when end-of-input is reached, which means the eoi
property is now true
.
Recycles instance.
Generated using TypeDoc
Relocates machine code for arm.