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... -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/