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 SHIFT instruction.
Puts an ANDS 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 code needed for branching/jumping to the given address.
Puts an OS/architecture-specific breakpoint instruction.
Puts a BRK instruction.
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 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 LDR COND instruction.
Puts an LDR instruction.
Puts a MOV SHIFT instruction.
Puts a NOP instruction.
Puts a RET instruction.
Puts a STR COND instruction.
Puts a STR instruction.
Puts a SUB instruction.
Recycles instance.
Optionaloptions: ArmWriterOptionsSkips nBytes.
Generates machine code for arm.