I agree with Leo.

What good are param counts for the different return types anyway?

How can you tell the difference between a function returning 
(int, int, string, PMC, string, float, string, PMC)
and a function returning 
(string, int, int, PMC, string, float, PMC, string)?
Both will have the same register counts in spite of the
differing function returns.

Order matters, yet that information is lost in the 
proposed calling/return convention.
The return register counts are not useful for reflection purposes
for this reason.

An ordered array of parameters makes far more sense.
The "overflow array" of PMCs ought to be the general case,
not just the exceptional case.

_____________________________

From: Leopold Toetsch
Subject: Re: Calling conventions. Again
Date: 2003-11-12 09:48:35 PST

Dan Sugalski <[EMAIL PROTECTED]> wrote:

[ I,N,S counts ]

> 6) Note that non-PMC counts only need to be filled in if we're marked
> "prototyped"

Again, this is IMHO unneeded or at least suboptimal. The caller has 3
more instructions. And what should the assembler generate for the
callee?

   if I1 == 0 goto no_iparam
   # I5 is valid
  no_iparam: # now what

When this is for some vararg stuff, it's by far simpler to check one
param count, then to have 4 counts.

All possible speedup is probably gone, when there are expensive runtime
checks.

>      Dan

leo

__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree

Reply via email to