Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba3558c7 authored by Vineet Gupta's avatar Vineet Gupta
Browse files

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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