]> git.buserror.net Git - polintos/scott/priv.git/blob - doc/abi/x86
c62911dd5b0213402c2cbafe94a45e74ada92e9a
[polintos/scott/priv.git] / doc / abi / x86
1 Basic ABI: SysV i386
2
3 Out-of-Process Method Invocation:
4    Caller:
5       eax: pointer to parameter info block (PIB)
6
7       Call the 32-bit address stored at 0x7fff0000 to invoke the method.
8       
9       Upon return:
10       ebx, esi, edi, ebp, esp: preserved
11       eax: pointer to exception, or NULL if none.
12            If there is an exception, the user part of the syscall
13            function will search for an exception handling function
14            that covers the calling address.  If none is found,
15            it will assume that it is a language without exception
16            handling, and return the exception to the caller in eax.
17       edx: length of exception segment, if any
18       ecx: may be clobbered
19       
20    Callee:
21       eax: pointer to PIB
22       edx: pointer to caller information struct, or NULL if not
23            requested.
24       esp: NULL.
25
26       Jump to the 32-bit address stored at 0x7fff0004 to return.
27       
28       Upon return:
29       eax: pointer to exception, or NULL if none.
30       edx: length of exception segment, if any
31       ebx, esi, edi, ebp, esp: may be clobbered