ARM banked 寄存器会冲突吗?

Would ARM banked register confilct?

阅读ARM Generic Interrupt Controller section 4.1.4,下面有解释:

Register banking refers to providing multiple copies of a register at the same address. The properties of a register access determine which copy of the register is addressed.

我对 at the same address 有点困惑。 例如如果R12 和R12_fiq 是同一个寄存器,处理器如何保证R12 中的原始数据在fiq 模式下不会被覆盖。是否需要保证?

我在网上找了很久。但是没有用。 All the related questions 对我没有帮助。

我认为 Benoit 在 What does 'bank'ing a register mean? 中的回答有点帮助,但我不确定。

提前致谢。

------------更新了-----

由于domen的回答,R8_usr和R8_fiq是两个不同的寄存器。抱歉,我不知道如何给他投票。而且我还注意到在 ensc 的回答中提到了 'dedicated',也许他知道它们是不同的。但由于我的描述不当,他没有强调。

"GIC" 和 R12 没有太多共同点。 GIC 是一个控制器(被一些人使用,但不是每个 ARM CPU),可以通过内存地址访问。根据安全模式 and/or cpu 节点,相同的地址可以提供对不同内部寄存器的视图。

R12 是一个 CPU 寄存器。由于效率原因(例如,为了避免在离开 FIQ 时恢复其先前的值),FIQ 模式有一个专用的高位寄存器组(r8-r15)。

堆栈指针 (r13) 和 lr (r14) 也可以存储,例如IRQ 模式可以有自己的堆栈或在 lr 中发出某些状态信号(例如堆栈对齐)。