Previous: ARC-Chars, Up: ARC Syntax

##### 9.3.2.2 Register Names

The ARC assembler uses the following register names for its core registers:

`r0-r31`
  The core general registers. Registers `r26` through `r31` have special functions, and are usually referred to by those synonyms.
`gp`
  The global pointer and a synonym for `r26`.
`fp`
  The frame pointer and a synonym for `r27`.
`sp`
  The stack pointer and a synonym for `r28`.
`ilink1`
  For ARC 600 and ARC 700, the level 1 interrupt link register and a synonym for `r29`. Not supported for ARCv2.
`ilink`
  For ARCv2, the interrupt link register and a synonym for `r29`. Not supported for ARC 600 and ARC 700.
`ilink2`
  For ARC 600 and ARC 700, the level 2 interrupt link register and a synonym for `r30`. Not supported for ARC v2.
`blink`
  The link register and a synonym for `r31`.
`r32-r59`
  The extension core registers.
`lp_count`
  The loop count register.
`pcl`
  The word aligned program counter.

In addition the ARC processor has a large number of auxiliary registers. The precise set depends on the extensions being supported, but the following baseline set are always defined:

`identity`
  Processor Identification register. Auxiliary register address 0x4.
`pc`
  Program Counter. Auxiliary register address 0x6.
`status32`
  Status register. Auxiliary register address 0x0a.
`bta`
  Branch Target Address. Auxiliary register address 0x412.
`ecr`
  Exception Cause Register. Auxiliary register address 0x403.
`int_vector_base`
  Interrupt Vector Base address. Auxiliary register address 0x25.
`status32_p0`
  Stored STATUS32 register on entry to level P0 interrupts. Auxiliary register address 0xb.
`aux_user_sp`
  Saved User Stack Pointer. Auxiliary register address 0xd.
`eret`
  Exception Return Address. Auxiliary register address 0x400.
`erbta`
  BTA saved on exception entry. Auxiliary register address 0x401.
`erstatus`
  STATUS32 saved on exception. Auxiliary register address 0x402.
`bcr_ver`
  Build Configuration Registers Version. Auxiliary register address 0x60.
`bta_link_build`
  Build configuration for: BTA Registers. Auxiliary register address 0x63.
`vecbase_ac_build`
  Build configuration for: Interrupts. Auxiliary register address 0x68.
`rf_build`
  Build configuration for: Core Registers. Auxiliary register address 0x6e.
`dccm_build`
  DCCM RAM Configuration Register. Auxiliary register address 0xc1.

Additional auxiliary register names are defined according to the processor architecture version and extensions selected by the options.