#### 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.