include: Define __imp_aux symbols in __ASM_DEFINE_IMPORT macro on ARM64EC.
Imported functions in ARM64EC have two __imp_
symbols:
- The usual
__imp_
symbol, which is guaranteed to be directly callable from ARM64 code and is used when calling the function (this may be a thunk if the imported function is x86_64). - The
__imp_aux_
symbol, which is the exact pointer as returned byGetProcAddress
(it could point to an x86_64 function or the export thunk of an ARM64EC function).
When C code retrieves the address of a function, it uses __imp_aux_
instead of __imp_
. This is reflected in __ASM_DEFINE_IMPORT
by defining __imp_
to the mangled function name and __imp_aux_
to the demangled one.
We currently don't depend on it in Wine itself, but it makes the whole thing more correct. Tested by adding trace("%p\n", exp2);
to msvcrt tests.