• David S. Miller's avatar
    sparc: Stash orig_i0 into %g6 instead of %g2 · e88d2468
    David S. Miller authored
    As per the comments added by this commit, %g2 turns out to not be a
    usable place to save away orig_i0 for syscall restart handling.
    
    In fact all of %g2, %g3, %g4, and %g5 are assumed to be saved across
    a system call by various bits of code in glibc.
    
    %g1 can't be used because that holds the syscall number, which would
    need to be saved and restored for syscall restart handling too, and
    that would only compound our problems :-)
    
    This leaves us with %g6 and %g7 which are for "system use".  %g7 is
    used as the "thread register" by glibc, but %g6 is used as a compiler
    and assembler temporary scratch register.  And in no instance is %g6
    used to hold a value across a system call.
    
    Therefore %g6 is safe for storing away orig_i0, at least for now.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e88d2468
signal_32.c 17.2 KB