Passing Conforming Parameters to an Unprototyped Routine

This example differs from the example of passing conforming parameters to a prototyped routine by providing:

If foo were an ellipsis routine with fewer than three conforming parameters in the invariant portion of its parameter list, it would also include the code to interpret the eyecatchers in its prolog.

   y = foo('A', x, y+x, y);

Caller's code surrounding call:

   PUSH     y                ; Push p4 onto the run-time stack
   SUB      ESP, 12          ; Allocate stack space for register parameters
   MOV      EAX, 00000041h   ; Put p1 into EAX (41 hex = A ASCII)
   MOVSX    EDX, x           ; Put p2 into EDX
   MOV      ECX, y           ; Load y to calculate p3
   ADD      ECX, x           ; Calculate p3 and put it into ECX
   CALL     FOO              ; Make call
   TEST     EAX, 00540000h   ; Eyecatcher indicating 3 general-purpose
                             ;  register parameters 
   ADD      ESP, 16          ; Clean up parameters after return


Calling Conventions
Eyecatchers


Examples of Passing Parameters Using _Optlink