On Tue, Jun 21, 2016 at 08:06:55AM +0300, Yury Norov wrote: > This patch adds support for ILP32 syscalls, sign and zero extending > where needed. Unlike LP64, pointers are 32bit and need to be zero > extended rather than the standard sign extend that the code would do. > We take advatage of ssize_t being long rather than int for ILP32, > to get this correct.
Unless I misunderstand what this patch does, I thought we agreed that 32-bit arguments are passed as 32-bit values and it is the kernel's responsibility to zero or sign-extend the upper half (IOW, assume garbage just like the PCS ABI). We are still debating whether 64-bit values are passed in one or two registers but this doesn't change the situation of 32-bit values like pointers. -- Catalin