• Ard Biesheuvel's avatar
    ARM: memset: clean up unwind annotations · ad3d09b5
    Ard Biesheuvel authored
    The memset implementation carves up the code in different sections, each
    covered with their own unwind info. In this case, it is done in a way
    similar to how the compiler might do it, to disambiguate between parts
    where the return address is in LR and the SP is unmodified, and parts
    where a stack frame is live, and the unwinder needs to know the size of
    the stack frame and the location of the return address within it.
    
    Only the placement of the unwind directives is slightly odd: the stack
    pushes are placed in the wrong sections, which may confuse the unwinder
    when attempting to unwind with PC pointing at the stack push in
    question.
    
    So let's fix this up, by reordering the directives and instructions as
    appropriate.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Tested-by: default avatarKeith Packard <keithpac@amazon.com>
    Tested-by: default avatarMarc Zyngier <maz@kernel.org>
    Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
    ad3d09b5
memset.S 2.86 KB