[AAPCS64] Remove ILP32 Support - #413
Conversation
ILP32 support for ELF platforms in the documents has been in perpetual Beta, with new additions to the ABI not considering ILP32. Now that the one complete implementation in GCC has been deprecated (https://gcc.gnu.org/gcc-15/changes.html) we will be removing ILP32 from the ABI documentation. Part of ARM-software#369
| ================================ | ||
|
|
||
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of three data models defined in this standard; ILP32, LP64 or LLP64. | ||
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of three data models defined in this standard; LP64 or LLP64. |
There was a problem hiding this comment.
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of three data models defined in this standard; LP64 or LLP64. | |
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of two data models defined in this standard; LP64 or LLP64. |
There was a problem hiding this comment.
We're not referencing this at all anymore except for the changelog and the note that we removed it which itself includes a quick summary, so remove here as well?
There was a problem hiding this comment.
I've added the details to the commit message, as I've removed the note.
|
|
||
| This specification does not standardize the representation of publicly visible C++-language entities that are not also C language entities (these are described in `CPPABI64`_) and it places no requirements on the representation of language entities that are not visible across public interfaces. | ||
|
|
||
| **(Beta)** suppport for ILP32 SysV-like variant where int, long int and pointer are 32-bit, has been removed. Refer to a previous binary release of the ABI for **(Beta)** ILP32 documentation. |
There was a problem hiding this comment.
I think describing the beta feature with beta markers is confusing here. At first I read it as removal of the feature being beta.
| **(Beta)** suppport for ILP32 SysV-like variant where int, long int and pointer are 32-bit, has been removed. Refer to a previous binary release of the ABI for **(Beta)** ILP32 documentation. | |
| Beta suppport has been removed for the ILP32 SysV-like variant where int, long int and pointer are 32-bit. Refer to a previous binary release of the ABI for Beta ILP32 documentation. |
TBH I would remove this line altogether. We already mention it in the change log and I feel we don't need to keep a changelog in the text of the things we removed.
There was a problem hiding this comment.
I have removed it in favour of the changelog.
- Removed ILP32 from definitions. - Removed sentence mentioning ILP32 removal. - Added ILP32 definition to change-log entry. - Fixed two code-models and not three after ILP32 removal.
smithp35
left a comment
There was a problem hiding this comment.
I've uploaded a patch with review comments addressed. Will update the other docs to match.
There was a problem hiding this comment.
I've added the details to the commit message, as I've removed the note.
|
|
||
| This specification does not standardize the representation of publicly visible C++-language entities that are not also C language entities (these are described in `CPPABI64`_) and it places no requirements on the representation of language entities that are not visible across public interfaces. | ||
|
|
||
| **(Beta)** suppport for ILP32 SysV-like variant where int, long int and pointer are 32-bit, has been removed. Refer to a previous binary release of the ABI for **(Beta)** ILP32 documentation. |
There was a problem hiding this comment.
I have removed it in favour of the changelog.
| ================================ | ||
|
|
||
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of three data models defined in this standard; ILP32, LP64 or LLP64. | ||
| The base standard defines a machine-level calling standard for the A64 instruction set. It assumes the availability of the vector registers for passing floating-point and SIMD arguments. Application code is expected to conform to one of three data models defined in this standard; LP64 or LLP64. |
ILP32 support for ELF platforms in the documents has been in perpetual Beta, with new additions to the ABI not considering ILP32. Now that the one complete implementation in GCC has been deprecated (https://gcc.gnu.org/gcc-15/changes.html) we will be removing ILP32 from the ABI documentation.
Part of #369