|
@@ -44,10 +44,27 @@
|
|
|
|
|
|
/* sizeof(struct user) for AArch32 */
|
|
|
#define COMPAT_USER_SZ 296
|
|
|
-/* AArch32 uses x13 as the stack pointer... */
|
|
|
+
|
|
|
+/* Architecturally defined mapping between AArch32 and AArch64 registers */
|
|
|
+#define compat_usr(x) regs[(x)]
|
|
|
#define compat_sp regs[13]
|
|
|
-/* ... and x14 as the link register. */
|
|
|
#define compat_lr regs[14]
|
|
|
+#define compat_sp_hyp regs[15]
|
|
|
+#define compat_sp_irq regs[16]
|
|
|
+#define compat_lr_irq regs[17]
|
|
|
+#define compat_sp_svc regs[18]
|
|
|
+#define compat_lr_svc regs[19]
|
|
|
+#define compat_sp_abt regs[20]
|
|
|
+#define compat_lr_abt regs[21]
|
|
|
+#define compat_sp_und regs[22]
|
|
|
+#define compat_lr_und regs[23]
|
|
|
+#define compat_r8_fiq regs[24]
|
|
|
+#define compat_r9_fiq regs[25]
|
|
|
+#define compat_r10_fiq regs[26]
|
|
|
+#define compat_r11_fiq regs[27]
|
|
|
+#define compat_r12_fiq regs[28]
|
|
|
+#define compat_sp_fiq regs[29]
|
|
|
+#define compat_lr_fiq regs[30]
|
|
|
|
|
|
/*
|
|
|
* This struct defines the way the registers are stored on the stack during an
|