On Tue, 2008-09-30 at 12:37 -0500, Matt Mackall wrote:Ok, on closer inspection, this is part of the x86_64 calling convention. When calling a varargs function, the caller passes the number of floating point SSE regs used in rax. The callee then has to save these away for va_list use. The GCC prologue apparently sets aside space for xmm0-xmm7 (16 bytes each) all the time (plus rdi, rsi, rdx, rcx, r8, and r9). Obviously, we're never passing floating point args in the kernel, so we're taking about a 40+ byte hit in code size and 128 byte hit in stack size for every varargs call. Looks like the gcc people have a patch in progress: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg02165.html So I think we should assume that x86_64 will sort this out eventually. -- Mathematics is the supreme nostalgia of our time. --
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Justin C. Sherrill | Re: pkgsrc bulk build and tiff |
| Jeremy Allison | Re: [RFC] Heads up on sys_fallocate() |
| Roland Dreier | Re: Integration of SCST in the mainstream Linux kernel |
| Matt Thomas | Re: Add a MAP_ALIGNED flag for mmap(2). |
| Vsevolod Stakhov | Unicode support in iso9660. |
| Jaromir Dolecek | Re: Speeding up fork/wait path |
| matthew green | re: merge of freebsd eventhandler |
git: | |
| Petr Janda | KDE and OpenSSL = Broken |
| sam | Re: Loader not found |
| Erick Perez | Re: dragonfly pdf documentation |
| Michel Talon | Re: Compatability with FreeBSD Ports [debian package tools] |
