From d69f0aedeec88ae56b6a5fdc93eadb07fe948ad3 Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Mon, 27 May 2013 18:51:27 +0530 Subject: [PATCH] ARC: Exception Entry tweaks - SP saved from one location in code Save k/u mode SP on kernel stack from single place. This paves way for further simplifications. There's an overhead of 1 insn for the non-common case of interrupt taken from kernel mode. Signed-off-by: Vineet Gupta --- arch/arc/include/asm/entry.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arc/include/asm/entry.h b/arch/arc/include/asm/entry.h index 5191945f3d39..2cf6aa08cfca 100644 --- a/arch/arc/include/asm/entry.h +++ b/arch/arc/include/asm/entry.h @@ -290,9 +290,8 @@ * safe-keeping not really needed, but it keeps the epilogue code * (SP restore) simpler/uniform. */ - b.d 77f - - st.a sp, [sp, -12] ; Make room for orig_r0 and orig_r8 + b.d 66f + mov r9, sp 88: /*------Intr/Ecxp happened in user mode, "switch" stack ------ */ @@ -311,6 +310,7 @@ /* With current tsk in r9, get it's kernel mode stack base */ GET_TSK_STACK_BASE r9, r9 +66: /* Save Pre Intr/Exception User SP on kernel stack */ st.a sp, [r9, -12] ; Make room for orig_r0 and orig_r8 @@ -323,7 +323,7 @@ /* set SP to point to kernel mode stack */ mov sp, r9 -77: /* ----- Stack Switched to kernel Mode, Now save REG FILE ----- */ + /* ----- Stack Switched to kernel Mode, Now save REG FILE ----- */ .endm -- 2.39.5