Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!ll-xn!mit-eddie!bbn!rochester!pt.cs.cmu.edu!sei!sei.cmu.edu!firth From: firth@sei.cmu.edu (Robert Firth) Newsgroups: comp.lang.c Subject: Re: Variable argument lists. Message-ID: <5474@aw.sei.cmu.edu> Date: 16 May 88 15:21:26 GMT References: <14139@brl-adm.ARPA> <11435@mimsy.UUCP> <1701@rpp386.UUCP> Sender: netnews@sei.cmu.edu Reply-To: firth@bd.sei.cmu.edu.UUCP (Robert Firth) Organization: Carnegie-Mellon University, SEI, Pgh, Pa Lines: 21 In article <1701@rpp386.UUCP> jfh@rpp386.UUCP (The Beach Bum) writes: >this function can be implemented if the C compiler uses the CALLS >instruction. CALLS is of the form > > CALLS #, Is there no hope of correcting this misinformation? ONE MORE TIME: the first operand of CALLS is the NUMBER OF LONGWORDS passed in the argument list. It is NOT the number of arguments. At one time, DEC tried to enforce a software convention that all arguments would be exactly one longword in size: smaller values would be padded, larger ones would be passed by reference, and dynamic-sized ones would be passed by reference-to-descriptor. This conventing is NOT obeyed by DEC system software, or by most compilers for the VAX-11. In general, you CANNOT assume that MOVZBL (AP), Reg will give you the "number of arguments".