1
0
mirror of https://git.code.sf.net/p/mingw-w64/mingw-w64 synced 2025-04-18 17:44:18 +03:00

crt: Implement the indirect call helper ARM64EC adjustor thunk

Calls to this are synthesized by the linker where it is used for calling
into import libraries, this is referred to as an 'Adjustor Thunk' in
ARM64EC documentation.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
This commit is contained in:
Billy Laws 2025-04-06 17:26:29 +02:00 committed by Jacek Caban
parent 8191d597be
commit a421d2c0c6

View File

@ -83,3 +83,26 @@ EXPORT_SYM(__chpe_metadata)
.rva __os_arm64x_helper6
.rva __os_arm64x_helper7
.rva __os_arm64x_helper8
/*
* Calls to this are synthesized by the linker when calling into import libraries,
* this is referred to as an 'Adjustor Thunk' in ARM64EC documentation.
*/
.text
.balign 16
EXPORT_SYM(__icall_helper_arm64ec)
.seh_proc "__icall_helper_arm64ec"
stp fp, lr, [sp, #-16]!
.seh_save_fplr_x 16
mov fp, sp
.seh_set_fp
.seh_endprologue
adrp x16, __os_arm64x_check_icall
ldr x16, [x16, #:lo12:__os_arm64x_check_icall]
blr x16
.seh_startepilogue
ldp fp, lr, [sp], #16
.seh_save_fplr_x 16
.seh_endepilogue
br x11
.seh_endproc