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