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.

For ARC 600 and ARC 700, the level 1 interrupt link register and a synonym for r29. Not supported for ARCv2.

For ARCv2, the interrupt link register and a synonym for r29. Not supported for ARC 600 and ARC 700.

For ARC 600 and ARC 700, the level 2 interrupt link register and a synonym for r30. Not supported for ARC v2.

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.