Skip to content

Commit ccb6ab9

Browse files
authored
Merge pull request MicrosoftDocs#4220 from pmsjt/patch-2
Delete the entire "x64 Unwinding of an ARM64EC function" section.
2 parents 85fa826 + fa441d5 commit ccb6ab9

File tree

1 file changed

+0
-6
lines changed

1 file changed

+0
-6
lines changed

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,6 @@ When the helper then returns to the thunk, the thunk:
166166
1. Pops the ARM64EC `lr` register
167167
1. Executes an ARM64 `ret lr` instruction.
168168

169-
## x64 Unwinding of an ARM64EC function
170-
171-
### Recovering the return address
172-
173-
At the beginning of an x64 function, the stack pointer points to the return address that was pushed onto the stack by the caller's `call` instruction. In contrast, at the beginning of an ARM64EC function, the return address is in the `lr` register, set by the caller's `bl` instruction. Therefore, when unwinding the deepest frame of a stack, if the frame corresponds to an ARM64EC function, the x64 unwinder must recreate the value of ARM64EC `lr` by reading the value stashed in the x87 registers when the exception occurred. In addition, the new x64 unwind code `UWOP_SAVE_RET` handles the prolog saving ARM64EC `lr` to the stack.
174-
175169
## ARM64EC function name decoration
176170

177171
An ARM64EC function name has a secondary decoration applied after any language-specific decoration. For functions with C linkage (whether compiled as C or by using `extern "C"`), a `#` is prepended to the name. For C++ decorated functions, a `$$h` tag is inserted into the name.

0 commit comments

Comments
 (0)