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.