Re: Why Plan 9 C compilers don't have asm("")

Michael Meissner (meissner@spectacle-pond.org)
Wed, 4 Jul 2001 21:02:27 -0400


On Tue, Jul 03, 2001 at 11:37:28PM -0400, Rick Hohensee wrote:
> That's with the GNU tools, without asm(), and without proper declaration
> of printf, as is my tendency. I don't actually return an int either, do I?
> LAAETTR.

Under ISO C rules, this is illegal, since you must have a proper prototype in
scope when calling variable argument functions. In fact, I have worked on
several GCC ports, where the compiler uses a different calling sequence for
variable argument functions than it does for normal functions. For example, on
the Mips, if the first argument is floating point and the number of arguments
is not variable, it is passed in a FP register, instead of an integer
register. For variable argument functions, everything is passed in the integer
registers.

-- 
Michael Meissner, Red Hat, Inc.  (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:	  meissner@redhat.com		phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org	fax:   +1 978-692-4482
-
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/