ARC: __switch_to: asm with dwarf ops (vs. inline asm)
authorVineet Gupta <vgupta@kernel.org>
Thu, 14 May 2020 07:16:34 +0000 (00:16 -0700)
committerVineet Gupta <vgupta@kernel.org>
Fri, 18 Aug 2023 03:31:59 +0000 (20:31 -0700)
commitb060b7d0c105d495eb9338a3f6c7bc0c09830a2c
tree76eaa8ad16e4dc7728a35912de754b27e2ed218c
parentd1d1569e89e9cc5c07a389ac859bd045b906923c
ARC: __switch_to: asm with dwarf ops (vs. inline asm)

__switch_to() is final step of context switch, swapping kernel modes
stack (and callee regs) of outgoing task with next task.

It is also the starting point of stack unwinging of a sleeping task and
captures SP, FP, BLINK and the corresponding dwarf info. Back when
dinosaurs still roamed around, ARC gas didn't support CFI pseudo ops and
gcc was responsible for generating dwarf info. Thus it had to be written
in "C" with inline asm to do the hand crafting of stack. The function
prologue (and crucial saving of blink etc) was still gcc generated but
not visible in code. Likewise dwarf info was missing.

Now with modern tools, we can make things more obvious by writing the
code in asm and adding approproate dwarf cfi pseudo ops.

This is mostly non functional change, except for slight chnages to asm

 - ARCompact doesn't support MOV_S fp, sp, so we use MOV

Signed-off-by: Vineet Gupta <vgupta@kernel.org>
arch/arc/include/asm/dwarf.h
arch/arc/kernel/Makefile
arch/arc/kernel/ctx_sw.c [deleted file]
arch/arc/kernel/ctx_sw_asm.S