[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Kernel build parameter CONFIG_REGPARAM breaks binary modules



On Wed, 2004-03-17 at 09:38 -0500, Alan Cox wrote:
> On Wed, Mar 17, 2004 at 12:47:13AM +0100, Earle Robert Nietzel wrote:
> > Come to find out that in "arch/i386/Makefile":
> > 
> > CFLAGS += -pipe -mregparm=3 -msoft-float -fno-builtin-sprintf -fno-
> > builtin-log2 -fno-builtin-puts
> > 
> > You'll notice "-mregparm=3"?
> > 
> > After removing this compiler flag my binary modules began to load
> > correctly.
> > 
> > Anyone care to comment on this?
> 
> Your binary modules need to match the kernel. -mregparm=3 tells the
> kernel to try and use registers for some of the argument passing, and
> thus be more efficient

I patched the ATI fglrx driver so that it compiles with -mregparm=3 and
the performance difference is noticably faster. 

I understand the reason for using fastcalls but could you explain the
syntax implementation?

For example I know GCC uses a __attribute__((cdecl)) but the actual
details behind this are not obvious to me.

Thanks for your time and patience!



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]