arm

Arm machine specifics. The arm target has several options:

  • thumb: enable thumb mode, emits thumb code
class ppci.arch.arm.ArmArch(options=None)

Arm machine class.

class ppci.arch.arm.ArmArch(options=None)

Arm machine class.

determine_arg_locations(arg_types)

Given a set of argument types, determine location for argument ABI: pass arg1 in R1 pass arg2 in R2 pass arg3 in R3 pass arg4 in R4 return value in R0

gen_epilogue(frame)

Return epilogue sequence for a frame.

Adjust frame pointer and add constant pool.

Also free up space on stack for:

  • Space for parameters passed to called functions.
  • Space for save registers
  • Space for local variables
gen_prologue(frame)

Returns prologue instruction sequence.

Reserve stack for this calling frame for:

  • local variables
  • save registers
  • parameters to called functions
get_runtime()

Implement compiler runtime functions

litpool(frame)

Generate instruction for the current literals

move(dst, src)

Generate a move from src to dst