Memory location of the first byte of output.
Memory location of the next byte of output.
Current offset in bytes.
Program counter at the next byte of output.
Determines whether a direct branch is possible between the two given memory locations.
Eagerly cleans up memory.
Resolves label references and writes pending data to memory. You should always call this once you've finished generating code. It is usually also desirable to do this between pieces of unrelated code, e.g. when generating multiple functions in one go.
Puts an ADD instruction.
Puts an ADD instruction.
Puts an AND instruction.
Puts a B COND instruction referencing labelId, defined by a past
or future putLabel().
Puts a B instruction referencing labelId, defined by a past
or future putLabel().
Puts a BL instruction referencing labelId, defined by a past
or future putLabel().
Puts a BLR instruction expecting a raw pointer without any authentication bits.
Puts code needed for branching/jumping to the given address.
Puts a BRK instruction.
Puts a BR instruction expecting a raw pointer without any authentication bits.
Puts code needed for calling a C function with the specified args.
Optionaldata: NativePointerValuePuts code needed for calling a C function with the specified args.
Puts a CBNZ instruction referencing labelId, defined by a past
or future putLabel().
Puts a CBZ instruction referencing labelId, defined by a past
or future putLabel().
Puts an EOR instruction.
Puts a raw instruction.
Puts a label at the current position, where id is an identifier
that may be referenced in past and future put*Label() calls.
Puts an LDP instruction.
Puts an LDR instruction with a dangling data reference,
returning an opaque ref value that should be passed to putLdrRegValue()
at the desired location.
Puts an LDR instruction.
Puts an LDR MODE instruction.
Puts the value and updates the LDR instruction
from a previous putLdrRegRef().
Puts an LDRSW instruction.
Puts a LSL instruction.
Puts a LSR instruction.
Puts a NOP instruction.
Puts code needed for popping all Q registers off the stack.
Puts code needed for popping all X registers off the stack.
Puts code needed for pushing all Q registers on the stack.
Puts code needed for pushing all X registers on the stack.
Puts a RET instruction.
Puts a STP instruction.
Puts a STR instruction.
Puts a STR MODE instruction.
Puts a SUB instruction.
Puts a SUB instruction.
Puts a TBNZ instruction.
Puts a TBNZ instruction referencing labelId, defined by a past
or future putLabel().
Puts a TBZ instruction.
Puts a TBZ instruction referencing labelId, defined by a past
or future putLabel().
Puts an UBFM instruction.
Recycles instance.
Optionaloptions: Arm64WriterOptionsSkips nBytes.
Generates machine code for arm64.