Originally Gitea issue #20 by @toshywoshy on 2016-11-13
The ELFv2 ABI is primarily written with C and C++ in mind, with a smattering of Fortran references. Occasionally we are going to run into languages that require extensions to the ABI. For example, Swift requires a mechanism for handling multiple return values, as well as special registers for SwiftSelf and SwiftError. At the moment, Swift will only be implemented with an LLVM back end, but history teaches that this is unlikely to always be the case. For compatibility we should state how these extensions should be implemented under ELFv2.
It's also likely that other languages will require similar treatment in the future, so we should add a section for extensions, with Swift being one subsection of this.
The LLVM implementation for System z can be found as shown below (thanks, Uli!). Currently there is not yet an LLVM implementation for POWER, but one is needed and is expected to be added soon.
http://reviews.llvm.org/D19414 (LLVM)
http://reviews.llvm.org/D19432 (clang)
The ELFv2 ABI is primarily written with C and C++ in mind, with a smattering of Fortran references. Occasionally we are going to run into languages that require extensions to the ABI. For example, Swift requires a mechanism for handling multiple return values, as well as special registers for SwiftSelf and SwiftError. At the moment, Swift will only be implemented with an LLVM back end, but history teaches that this is unlikely to always be the case. For compatibility we should state how these extensions should be implemented under ELFv2.
It's also likely that other languages will require similar treatment in the future, so we should add a section for extensions, with Swift being one subsection of this.
The LLVM implementation for System z can be found as shown below (thanks, Uli!). Currently there is not yet an LLVM implementation for POWER, but one is needed and is expected to be added soon.
http://reviews.llvm.org/D19414 (LLVM)
http://reviews.llvm.org/D19432 (clang)