Skip to content

Commit 6e1de26

Browse files
authored
Merge pull request #4893 from MicrosoftDocs/FromPublicMasterBranch
Confirm merge from FromPublicMasterBranch to main to sync with https://github.com/MicrosoftDocs/cpp-docs (branch main)
2 parents 52172db + b19bdae commit 6e1de26

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

docs/build/arm64-windows-abi-conventions.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ A type is considered to be an HFA or HVA if all of the following hold:
204204
- It doesn't have any non-trivial default or copy constructors, destructors, or assignment operators,
205205
- 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.
206206

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.
208208

209209
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,
210210

@@ -214,9 +214,10 @@ Types returned by value are handled differently depending on whether they have c
214214

215215
and are returned by non-member functions or static member functions, use the following return style:
216216

217+
- Types that are HFAs with four or fewer elements are returned in s0-s3, d0-d3, or v0-v3, as appropriate.
217218
- Types less than or equal to 8 bytes are returned in x0.
218219
- 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.
220221

221222
All other types use this convention:
222223

0 commit comments

Comments
 (0)