Xref: utzoo comp.sys.mips:401 comp.sys.dec:2417 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!snorkelwacker!bloom-beacon!raeburn From: raeburn@athena.mit.edu (Ken Raeburn) Newsgroups: comp.sys.mips,comp.sys.dec Subject: Re: ANSI-C style variadic functions on MIPS Message-ID: <1990Jan8.041547.18259@athena.mit.edu> Date: 8 Jan 90 04:15:47 GMT References: <1990Jan5.085205.12473@athena.mit.edu> <15370@boulder.Colorado.EDU> <1990Jan6.062805.23863@athena.mit.edu> <34218@mips.mips.COM> Sender: news@athena.mit.edu (News system) Reply-To: raeburn@athena.mit.edu (Ken Raeburn) Organization: Massachusetts Institute of Technology Lines: 18 In article <34218@mips.mips.COM> lai@mips.COM (David Lai) writes: > extern foo(double,...); > foo(2.0,3.0); /* passes 2.0 in fp reg, 3.0 in regular registers */ Ah, excellent. Thank you for the confirmation. I had thought this was the solution, but it doesn't match Kane's book (well, maybe if you interpret variadic-function arguments as coming under "anything else", regardless of type -- but that should be explicitly stated) or the behavior I saw from the PMAX (excuse me, DECstation) compiler. (I did have my definition -- with ellipsis -- before the call; that should be enough.) Could the Ultrix version be an older compiler, that didn't have this fixed? Theirs is 1.31, and puts 3.0 (from the example above) in $f14, as does the current gcc port. If it is outdated, I'll complain at them.... What's the current one supposed to be? Thanks again... -- Ken