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.