Commit ba3558c7 authored by Vineet Gupta's avatar Vineet Gupta

ARC: K/U SP saved from one location in stack switching macro

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: default avatarVineet Gupta <vgupta@synopsys.com>
parent 147aece2
...@@ -290,9 +290,8 @@ ...@@ -290,9 +290,8 @@
* safe-keeping not really needed, but it keeps the epilogue code * safe-keeping not really needed, but it keeps the epilogue code
* (SP restore) simpler/uniform. * (SP restore) simpler/uniform.
*/ */
b.d 77f b.d 66f
mov r9, sp
st.a sp, [sp, -12] ; Make room for orig_r0 and orig_r8
88: /*------Intr/Ecxp happened in user mode, "switch" stack ------ */ 88: /*------Intr/Ecxp happened in user mode, "switch" stack ------ */
...@@ -311,6 +310,7 @@ ...@@ -311,6 +310,7 @@
/* With current tsk in r9, get it's kernel mode stack base */ /* With current tsk in r9, get it's kernel mode stack base */
GET_TSK_STACK_BASE r9, r9 GET_TSK_STACK_BASE r9, r9
66:
/* Save Pre Intr/Exception User SP on kernel stack */ /* Save Pre Intr/Exception User SP on kernel stack */
st.a sp, [r9, -12] ; Make room for orig_r0 and orig_r8 st.a sp, [r9, -12] ; Make room for orig_r0 and orig_r8
...@@ -323,7 +323,7 @@ ...@@ -323,7 +323,7 @@
/* set SP to point to kernel mode stack */ /* set SP to point to kernel mode stack */
mov sp, r9 mov sp, r9
77: /* ----- Stack Switched to kernel Mode, Now save REG FILE ----- */ /* ----- Stack Switched to kernel Mode, Now save REG FILE ----- */
.endm .endm
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment