|
|
|
|
|
by caim
342 days ago
|
|
Swift has its own ABI and calling convention, so that makes sense that Apple adapted to it. The system v abi doesn't say anything about syscall. Windows x86_64 abi is the same abi for x86, for this reason, you can only pass arguments in 4 registers ( while unix uses 6 ) because x86 only had 8 registers. I think people have expectations that are misaligned with history and reality about this, to be honest. We can't expect all OS to do things in the same way. C was created to rewrite the UNIX system, and POSIX compliance is followed by all successors, with minimal differences. When it became clear that "Itanium" was a failure, Microsoft couldn't just pull an ABI out of the box and break all applications, so they just reused the same x86 ABI. |
|