• R
    switch to using trap number 31 for syscalls on sh · 10d0268c
    Rich Felker 提交于
    nominally the low bits of the trap number on sh are the number of
    syscall arguments, but they have never been used by the kernel, and
    some code making syscalls does not even know the number of arguments
    and needs to pass an arbitrary high number anyway.
    
    sh3/sh4 traditionally used the trap range 16-31 for syscalls, but part
    of this range overlapped with hardware exceptions/interrupts on sh2
    hardware, so an incompatible range 32-47 was chosen for sh2.
    
    using trap number 31 everywhere, since it's in the existing sh3/sh4
    range and does not conflict with sh2 hardware, is a proposed
    unification of the kernel syscall convention that will allow binaries
    to be shared between sh2 and sh3/sh4. if this is not accepted into the
    kernel, we can refit the sh2 target with runtime selection mechanisms
    for the trap number, but doing so would be invasive and would entail
    non-trivial overhead.
    10d0268c
pipe.s 348 字节