Skip to content

Commit d02dc7c

Browse files
committed
edits
1 parent 8d71733 commit d02dc7c

File tree

4 files changed

+9
-8
lines changed

4 files changed

+9
-8
lines changed

docs/build/arm-exception-handling.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
---
22
description: "Learn more about: ARM Exception Handling"
33
title: "ARM Exception Handling"
4-
ms.date: 12/15/2021
5-
ms.assetid: fe0e615f-c033-4ad5-97f4-ff96af45b201
4+
ms.date: 04/08/2025
65
---
76
# ARM Exception Handling
87

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,7 @@ Like AArch32, the AArch64 specification provides three system-controlled "thread
121121

122122
You can determine if an ARM CPU supports exceptions by writing a value that enables exceptions to the FPCR register and then reading it back. If the CPU supports floating-point exceptions, the bits corresponding to the supported exceptions remain set, while the bits corresponding to unsupported exceptions are reset by the CPU.
123123

124-
For ARM CPUs that support IEEE floating-point exceptions, the behavior on Windows is as follows:
125-
126-
- **ARM32**: Windows doesn't support floating-point exceptions.
127-
- **ARM64**: For processor variants that support hardware floating-point exceptions, Windows delivers them.
128-
- **ARM64EC**: For processor variants that support hardware floating-point exceptions, Windows catches these exceptions and disables them in the FPCR register. This ensures consistent behavior across different processor variants.
124+
On ARM64, Windows delivers exceptions for those processors that support hardware floating-point exceptions.
129125

130126
- The [`_set_controlfp`](/cpp/c-runtime-library/reference/controlfp-s) function on ARM platforms correctly changes the FPCR register when unmasking floating-point exceptions. However, instead of raising an unmasked exception, Windows resets the FPCR register to its defaults every time an FP exception is about to be raised.
131127

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ Special helper routines like `__chkstk_arm64ec` use custom calling conventions a
9292

9393
ARM64EC follows the same struct packing rules used for x64 to ensure interoperability between ARM64EC code and x64 code. For more information and examples of x64 struct packing, see [Overview of x64 ABI conventions](x64-software-conventions.md).
9494

95+
## Floating-point exceptions
96+
97+
You can determine if an ARM CPU supports exceptions by writing a value that enables exceptions to the FPCR register and then reading it back. If the CPU supports floating-point exceptions, the bits corresponding to the supported exceptions remain set, while the bits corresponding to unsupported exceptions are reset by the CPU.
98+
99+
For ARM64EC, Windows catches processor floating-point exceptions and disables them in the FPCR register. This ensures consistent behavior across different processor variants.
100+
95101
## Emulation helper ABI routines
96102

97103
ARM64EC code and [thunks](#thunks) use emulation helper routines to transition between x64 and ARM64EC functions.

docs/build/x64-software-conventions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: "Learn more about: x64 ABI conventions"
33
title: "x64 ABI conventions"
4-
ms.date: 04/07/2025
4+
ms.date: 03/28/2025
55
helpviewer_keywords: ["x64 coding conventions", "x64 abi", "Visual C++, x64 calling conventions"]
66
---
77
# Overview of x64 ABI conventions

0 commit comments

Comments
 (0)