Subject: stacked syscall args on N32 kernel + O32 userland
To: None <port-mips@NetBSD.org>
From: Masao Uebayashi <firstname.lastname@example.org>
Date: 08/08/2007 18:44:10
O32 programs put arguments, that can't be put on argument registers
(a[0-3] for O32), on stack, where 64-bit values are aligned to 64-bit
and 32-bit and smaller values are aligned to 32-bit.
The new syscall entry code Matt Thomas has just added (thanks!) to
matt-mips64 doesn't work if register_t is 64-bit. The right code I
think would be
* copyin() the whole arguments (sy_argsize) into kernel, and
* copy each argument into register_t array.
But but we can't know sizes of each argument at this point. Some may
be 64-bit, like off_t. So we can't rearrange arguments into