Module Arm_target

Declarations of various ARM targets.

The parent of all ARM targets.

When a new target is declared it is advised to use this target as parent so that the newly declared target will be included into the ARM Targets family. The parent target is pure abstract and doesn't have any propreties set.

A role for registers available in the thumb mode.

module LE : sig ... end

The family of little endian targets.

module EB : sig ... end

The family of big endian targets.

module Bi : sig ... end

The family of targets with switchable endiannes.

val load : ?interworking:bool -> ?backend:string -> unit -> unit

load () loads the knowledge base rules for the ARM targets.

This includes parsing the loader output and enabling backward compatibility with the old Arch.t representation.

  • parameter [interworking]

    if set disables/enables the interworking mode (switching between arm and thumb modes). If not set, then the presence of interworking is detected using heurisitics. Right now if the heuristic looks into the symbol table and if there is a symbol there with an odd address (which is used to indicate thumb encoding) then interworking is enabled.