• Vineet Gupta's avatar
    ARC: Support syscall ABI v4 · 840c054f
    Vineet Gupta authored
    The syscall ABI includes the gcc functional calling ABI since a syscall
    implies userland caller and kernel callee.
    
    The current gcc ABI (v3) for ARCv2 ISA required 64-bit data be passed in
    even-odd register pairs, (potentially punching reg holes when passing such
    values as args). This was partly driven by the fact that the double-word
    LDD/STD instructions in ARCv2 expect the register alignment and thus gcc
    forcing this avoids extra MOV at the cost of a few unused register (which we
    have plenty anyways).
    
    This however was rejected as part of upstreaming gcc port to HS. So the new
    ABI v4 doesn't enforce the even-odd reg restriction.
    
    Do note that for ARCompact ISA builds v3 and v4 are practically the same in
    terms of gcc code generation.
    
    In terms of change management, we infer the new ABI if gcc 6.x onwards
    is used for building the kernel.
    
    This also needs a stable backport to enable older kernels to work with
    new tools/user-space
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    840c054f
setup.c 14.1 KB