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-exception-handling.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: "ARM64 exception handling"
3
3
description: Describes the exception handling conventions and data used by windows on ARM64.
4
-
ms.date: 04/07/2022
4
+
ms.date: 10/10/2022
5
5
---
6
6
# ARM64 exception handling
7
7
@@ -344,7 +344,7 @@ The fields are as follows:
344
344
-**Function Length** is an 11-bit field providing the length of the entire function in bytes, divided by 4. If the function is larger than 8k, a full `.xdata` record must be used instead.
345
345
-**Frame Size** is a 9-bit field indicating the number of bytes of stack that is allocated for this function, divided by 16. Functions that allocate greater than (8k-16) bytes of stack must use a full `.xdata` record. It includes the local variable area, outgoing parameter area, callee-saved Int and FP area, and home parameter area. It excludes the dynamic allocation area.
346
346
-**CR** is a 2-bit flag indicating whether the function includes extra instructions to set up a frame chain and return link:
- 01 = unchained function, \<lr> is saved in stack
349
349
- 10 = chained function with signed return address
350
350
- 11 = chained function, a store/load pair instruction is used in prolog/epilog \<x29,lr>
@@ -366,7 +366,7 @@ Step 4: Save FP callee-saved registers.
366
366
367
367
Step 5: Save input arguments in the home parameter area.
368
368
369
-
Step 6: Allocate remaining stack, including local area, \<x29,lr> pair, and outgoing parameter area. 5a corresponds to canonical type 1. 5b and 5c are for canonical type 2. 5d and 5e are for both type 3 and type 4.
369
+
Step 6: Allocate remaining stack, including local area, \<x29,lr> pair, and outgoing parameter area. 6a corresponds to canonical type 1. 6b and 6c are for canonical type 2. 6d and 6e are for both type 3 and type 4.
370
370
371
371
| Step # | Flag values | # of instructions | Opcode | Unwind code |
0 commit comments