Legend:
Library
Module
Module type
Parameter
Class
Class type
Common roles for registers.
This module enumerates the blessed set of the register roles that have common meaning among various architectures. Feel free to create target-specific register roles and publish them via your target support libraries. Look for such target-specific roles in the XXX_target modules.
The register roles are specifically grouped in a single module to enable local-opening of this module.
The general purpose registers is a class of register that are used for arithmetic and logic units. On targets with floating-point and vector arithmetic unit this class includes the floating-point and vector registers as well.
To narrow down the list, specify additional roles, e.g., to get the list of general-purpose integer arithmetic registers use [general; integer].
The special-purpose register include (but are not limited to) status registers and commonly are accessed using special instructions (couldn't be the targets of common load/store and arithmetic operations of a computation unit).
The pseudo-registers do not correspond to an actual storage but rather a hard-wired register, such as constant zero, or an instruction register, or a program counter.
The register is not real register but is defined in terms of other registers, e.g., as a subset of other register or a concatenation of other registers, or somehow else.
the register is used by the integer arithmetic unit
This role can be assigned both to general and special purpose registers. E.g., to get integer arithemtic status control registers use [special; integer].
the register is used by the floating-point arithmetic unit
This role can be assigned both to general and special purpose registers. E.g., to get floating-point arithemtic status control registers use [special; floating].
the register is used by the vector processing unit
This role can be assigned both to general and special purpose registers. E.g., to get floating-point arithemtic status control registers use [special; vector].