]> git.buserror.net Git - polintos/scott/priv.git/blob - doc/abi/x86
fd0c51a2a4835a2d7a7b0adfe40ae036b648eb23
[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, if such was
23            requested
24
25       Jump to the 32-bit address stored at 0x7fff0004 to return.
26       
27       Upon return:
28       eax: pointer to exception, or NULL if none.
29       edx: length of exception segment, if any
30       ebx, esi, edi, ebp, esp: should be preserved
31       ecx: may be clobbered