arch:xtensa: fix sp duplicate reduce in handler enter

In xtensa/include/irq.h the XCPTCONTEXT_SIZE is
`#define XCPTCONTEXT_SIZE    ((4 * XCPTCONTEXT_REGS) + 0x20)`

XCPTCONTEXT_SIZE is already byte size of xcpcontext

Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
This commit is contained in:
zhuyanlin
2021-12-22 17:59:57 +08:00
committed by Petro Karashchenko
parent a8ab090764
commit a4e93be0fb
3 changed files with 18 additions and 18 deletions

View File

@@ -295,7 +295,7 @@ g_intstacktop:
_xtensa_level1_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -399,7 +399,7 @@ _xtensa_level1_handler:
_xtensa_level2_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_2 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -478,7 +478,7 @@ _xtensa_level2_handler:
_xtensa_level3_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_3 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -557,7 +557,7 @@ _xtensa_level3_handler:
_xtensa_level4_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_4 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -636,7 +636,7 @@ _xtensa_level4_handler:
_xtensa_level5_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_5 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -715,7 +715,7 @@ _xtensa_level5_handler:
_xtensa_level6_handler:
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_6 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -833,7 +833,7 @@ _xtensa_level2_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_2 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -867,7 +867,7 @@ _xtensa_level3_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_3 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -903,7 +903,7 @@ _xtensa_level4_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_4 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -939,7 +939,7 @@ _xtensa_level5_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_5 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -975,7 +975,7 @@ _xtensa_level6_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS_6 /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)

View File

@@ -210,7 +210,7 @@ _xtensa_user_handler:
/* Allocate exception frame and save minimal context. */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -332,7 +332,7 @@ _xtensa_syscall_handler:
/* Allocate stack frame and save A0, A1, and PS */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -505,7 +505,7 @@ _xtensa_coproc_handler:
/* For now, just panic */
mov a0, sp /* Save SP in A0 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)

View File

@@ -193,7 +193,7 @@ _xtensa_nmi_vector:
wsr a0, EXCSAVE + XCHAL_NMILEVEL /* Preserve a0 */
mov a0, sp /* sp == a1 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS + XCHAL_NMILEVEL /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -235,7 +235,7 @@ _xtensa_nmi_vector:
_debug_exception_vector:
wsr a0, EXCSAVE + XCHAL_DEBUGLEVEL /* Preserve a0 */
mov a0, sp /* sp == a1 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, EPS + XCHAL_DEBUGLEVEL /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)
@@ -276,7 +276,7 @@ _double_exception_vector:
wsr a0, EXCSAVE_1 /* Preserve a0 */
mov a0, sp /* sp == a1 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS -- REVISIT */
s32i a0, sp, (4 * REG_PS)
@@ -320,7 +320,7 @@ _kernel_exception_vector:
wsr a0, EXCSAVE_1 /* Preserve a0 */
mov a0, sp /* sp == a1 */
addi sp, sp, -(4 * XCPTCONTEXT_SIZE) /* Allocate interrupt stack frame */
addi sp, sp, -XCPTCONTEXT_SIZE /* Allocate interrupt stack frame */
s32i a0, sp, (4 * REG_A1) /* Save pre-interrupt SP */
rsr a0, PS /* Save interruptee's PS */
s32i a0, sp, (4 * REG_PS)