Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define soft-float PCS for AArch64 #232

Merged
merged 1 commit into from
Feb 7, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions aapcs64/aapcs64.rst
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ changes to the content of the document for that release.
| | October 2023 | |
+------------+--------------------+------------------------------------------------------------------+
| | | - Change the status of the SME support from Alpha to Beta. |
| | | - Add soft-float PCS variant. |
+------------+--------------------+------------------------------------------------------------------+

References
Expand Down Expand Up @@ -2028,6 +2029,21 @@ size\_t, ptrdiff\_t

See `Arm C and C++ language mappings`_.

Soft-float
----------

The soft-float variant is defined for Arm v8-R implementations that do not have floating-point instructions or registers. This variant is incompatible with the base procedure call standard and toolchains are not required to support it.

The soft-float variant is defined identically to the base variant, with these changes:

* All floating-point types are passed as if they are an Integral machine type with the same byte-size and alignment.

* No types are considered to be HFAs or HVAs.

* The definition of ``va_list`` is unchanged. The ``__vr_top`` and ``__vr_offs`` fields may be left uninitialised by ``va_start``, and their values must not be relied on by ``va_arg``.

* The calling convention for Short Vector, Scalable Vector and Scalable Predicate machine types is left undefined.
stuij marked this conversation as resolved.
Show resolved Hide resolved

.. raw:: pdf

PageBreak
Expand Down
Loading