Messages in this thread | | | Date | Mon, 4 Feb 2013 05:05:50 +0000 | From | Al Viro <> | Subject | Re: [PATCH] arch: avr32: add dummy syscalls |
| |
On Sun, Feb 03, 2013 at 08:52:18PM -0800, H?vard Skinnemoen wrote:
> You're right on -- in this case, the compiler will skip r10, and do > (r12, r11, r8:r9, stack). We pass the syscall number in r8, but we > also unconditionally move r7 to r8 in the syscall path, so it > shouldn't matter (libc does the opposite when necessary). > > I remember some talk about having the compiler reuse r10 for the next > 32-bit argument in cases like this, but I don't think it ever > happened.
Umm... In case of fallocate() the next argument is 64bit one, though; sys_fallocate() will be looking for two 32bit words on stack, so no matter how do we pass them to syscall, we'd better push two words in the wrapper.
But yes, 32bit/32bit/64bit/32bit is another interesting case - fanotify_mark is 32/32/64/32/32. From what ABI says it would seem to be r12/r11/r8:r9/r10/stack, but if I understand you correctly, we'll end up wanting *two* arguments on stack...
| |