Re: [RFC PATCH (take #2)] i386: kill CONFIG_REGPARM completely

From: Helge Hafting
Date: Tue May 23 2006 - 04:02:58 EST


linux-os (Dick Johnson) wrote:

On ix86 there are not enough registers to pass a significant parameter
list all in registers! Like when you are printk()ing a dotted-quad IP
address, etc. Registers ESI, EDI, and EBX are precious, that leaves
EAX, ECX, EDX and possibly EBP for only 4 parameters. You need 5
for the dotted quad IP address. If the compiler were to use the
precious registers, the contents need to be saved on the stack.
That negates any advantage to passing parameters in registers.


I had the impression that REGPARM in i386 only passed the
first three arguments in registers, putting any further
paramters on the stack?

Ought to help for all those 3-argument or less functions.

Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/