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.