• Vineet Gupta's avatar
    ARC: __switch_to: asm with dwarf ops (vs. inline asm) · b060b7d0
    Vineet Gupta authored
    __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: default avatarVineet Gupta <vgupta@kernel.org>
    b060b7d0
Makefile 951 Bytes