You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/build/arm64-windows-abi-conventions.md
+3-2Lines changed: 3 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -204,7 +204,7 @@ A type is considered to be an HFA or HVA if all of the following hold:
204
204
- It doesn't have any non-trivial default or copy constructors, destructors, or assignment operators,
205
205
- All of its members have the same HFA or HVA type, or are float, double, or neon types that match the other members' HFA or HVA types.
206
206
207
-
HFA and HVA values with four or fewer elements are returned in s0-s3, d0-d3, or v0-v3, as appropriate.
207
+
HVA values with four or fewer elements are returned in s0-s3, d0-d3, or v0-v3, as appropriate.
208
208
209
209
Types returned by value are handled differently depending on whether they have certain properties, and whether the function is a non-static member function. Types which have all of these properties,
210
210
@@ -214,9 +214,10 @@ Types returned by value are handled differently depending on whether they have c
214
214
215
215
and are returned by non-member functions or static member functions, use the following return style:
216
216
217
+
- Types that are HFAs with four or fewer elements are returned in s0-s3, d0-d3, or v0-v3, as appropriate.
217
218
- Types less than or equal to 8 bytes are returned in x0.
218
219
- Types less than or equal to 16 bytes are returned in x0 and x1, with x0 containing the lower-order 8 bytes.
219
-
- For types greater than 16 bytes, the caller shall reserve a block of memory of sufficient size and alignment to hold the result. The address of the memory block shall be passed as an additional argument to the function in x8. The callee may modify the result memory block at any point during the execution of the subroutine. The callee isn't required to preserve the value stored in x8.
220
+
- For other aggregate types, the caller shall reserve a block of memory of sufficient size and alignment to hold the result. The address of the memory block shall be passed as an additional argument to the function in x8. The callee may modify the result memory block at any point during the execution of the subroutine. The callee isn't required to preserve the value stored in x8.
0 commit comments