Messages in this thread | | | Date | Fri, 8 Dec 2006 13:59:28 +0100 | From | Adrian Bunk <> | Subject | UML and fastcall/FASTCALL |
| |
UML on i386 is now the only case where fastcall/FASTCALL is not a noop.
There are two use cases for fastcall/FASTCALL in UML on i386:
1. optimization for C code A faster calling convention is used for the functions annotated this way.
2. interfacing with assembler code But include/asm-um/linkage.h contains the following:
<-- snip -->
#ifndef __ASM_UM_LINKAGE_H #define __ASM_UM_LINKAGE_H
#include "asm/arch/linkage.h"
/* <linux/linkage.h> will pick sane defaults */ #ifdef CONFIG_GPROF #undef FASTCALL #undef fastcall #endif
#endif
<-- snip -->
E.g. if CONFIG_SMP was still available on UML, CONFIG_SMP=y, CONFIG_GPROF=y would have some horrible effects when calling the functions in arch/i386/lib/semaphore.S.
Are there any benchmark numbers that the existing fastcall/FASTCALL annotations in the kernel really make a measurable difference for C code?
Otherwise, we could use it only for assembler code using this calling convention (if there is any used by UML) - and CONFIG_GPROF mustn't change this.
cu Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |