diff --git a/dll/ntdll/def/ntdll.spec b/dll/ntdll/def/ntdll.spec index 63fd851dc8d..3db2bf08b82 100644 --- a/dll/ntdll/def/ntdll.spec +++ b/dll/ntdll/def/ntdll.spec @@ -611,7 +611,7 @@ @ stdcall -stub -version=0x600+ RtlAcquireSRWLockShared(ptr) @ stdcall RtlActivateActivationContext(long ptr ptr) @ stdcall RtlActivateActivationContextEx(long ptr ptr ptr) -@ stdcall -arch=x86_64 RtlActivateActivationContextUnsafeFast(ptr ptr) +@ stdcall -arch=x86_64,arm RtlActivateActivationContextUnsafeFast(ptr ptr) @ stdcall RtlAddAccessAllowedAce(ptr long long ptr) @ stdcall RtlAddAccessAllowedAceEx(ptr long long long ptr) @ stdcall RtlAddAccessAllowedObjectAce(ptr long long long ptr ptr ptr) @@ -743,7 +743,7 @@ @ stub -version=0x600+ RtlDeCommitDebugInfo @ stdcall RtlDeNormalizeProcessParams(ptr) @ stdcall RtlDeactivateActivationContext(long long) -@ stdcall -arch=x86_64 RtlDeactivateActivationContextUnsafeFast(ptr) +@ stdcall -arch=x86_64,arm RtlDeactivateActivationContextUnsafeFast(ptr) @ stdcall -stub RtlDebugPrintTimes() @ stdcall RtlDecodePointer(ptr) @ stdcall RtlDecodeSystemPointer(ptr) @@ -1757,7 +1757,7 @@ @ cdecl -arch=i386 _CIsin() @ cdecl -arch=i386 _CIsqrt() @ cdecl -arch=x86_64,arm __C_specific_handler(ptr long ptr ptr) -@ cdecl -arch=x86_64 __chkstk() +@ cdecl -arch=x86_64,arm __chkstk() @ cdecl __isascii(long) @ cdecl __iscsym(long) @ cdecl __iscsymf(long) @@ -1791,8 +1791,8 @@ @ cdecl _ltow(long ptr long) @ cdecl _memccpy(ptr ptr long long) @ cdecl _memicmp(str str long) -@ cdecl -arch=x86_64 _setjmp(ptr ptr) -@ cdecl -arch=x86_64 _setjmpex(ptr ptr) +@ cdecl -arch=x86_64,arm _setjmp(ptr ptr) +@ cdecl -arch=x86_64,arm _setjmpex(ptr ptr) @ varargs _snprintf(ptr long str) @ varargs _snwprintf(ptr long wstr) @ cdecl _splitpath(str ptr ptr ptr ptr) diff --git a/dll/win32/msvcrt/msvcrt.spec b/dll/win32/msvcrt/msvcrt.spec index 62295ac46a3..adff7f8bf98 100644 --- a/dll/win32/msvcrt/msvcrt.spec +++ b/dll/win32/msvcrt/msvcrt.spec @@ -164,7 +164,7 @@ ;@ cdecl -arch=arm __ExceptionPtrRethrow() ;@ cdecl -arch=arm __ExceptionPtrSwap() ;@ cdecl -arch=arm __ExceptionPtrToBool() -@ cdecl -arch=arm __uncaught_exception() +@ cdecl -arch=arm __uncaught_exception(ptr) MSVCRT___uncaught_exception @ cdecl -arch=arm ?_query_new_handler@@YAP6AHI@ZXZ() MSVCRT__query_new_handler # int (__cdecl*__cdecl _query_new_handler(void))(unsigned int) @ cdecl -arch=arm ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z() MSVCRT__set_new_handler # int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned int)))(unsigned int) @ cdecl -arch=arm ?_set_new_mode@@YAHH@Z() MSVCRT__set_new_mode # int __cdecl _set_new_mode(int) @@ -947,7 +947,7 @@ @ cdecl _seterrormode(long) @ cdecl -norelay _setjmp(ptr) @ cdecl -arch=i386 -norelay _setjmp3(ptr long) -@ cdecl -arch=x86_64 -norelay _setjmpex(ptr ptr) +@ cdecl -arch=x86_64,arm -norelay _setjmpex(ptr ptr) @ cdecl _setmaxstdio(long) @ cdecl _setmbcp(long) @ cdecl _setmode(long long) diff --git a/dll/win32/rpcrt4/CMakeLists.txt b/dll/win32/rpcrt4/CMakeLists.txt index 90c9225847a..d2a7e0f2702 100644 --- a/dll/win32/rpcrt4/CMakeLists.txt +++ b/dll/win32/rpcrt4/CMakeLists.txt @@ -41,7 +41,7 @@ list(APPEND SOURCE unix_func.c ${CMAKE_CURRENT_BINARY_DIR}/epm_c.c) -if(MSVC AND NOT ARCH STREQUAL "arm") +if(MSVC) add_asm_files(rpcrt4_asm msvc.S) endif() diff --git a/dll/win32/rpcrt4/msvc.S b/dll/win32/rpcrt4/msvc.S index c45ccc68853..ca7d77430aa 100644 --- a/dll/win32/rpcrt4/msvc.S +++ b/dll/win32/rpcrt4/msvc.S @@ -1,5 +1,9 @@ +#if defined(_M_IX86) || defined(_M_AMD64) #include +#elif defined(_M_ARM) +#include +#endif #ifdef _M_IX86 .code32 @@ -29,7 +33,8 @@ _call_stubless_func: mov ecx, [esp] /* return address */ add esp, edx jmp ecx -#else + +#elif _M_AMD64 .code64 EXTERN ndr_client_call:PROC @@ -141,6 +146,25 @@ FUNC NdrAsyncClientCall ret ENDFUNC +#elif _M_ARM +TEXTAREA + + LEAF_ENTRY call_stubless_func + + /* Unimplemented */ + __assertfail + bx lr + + LEAF_END call_stubless_func + + LEAF_ENTRY call_server_func + + /* Unimplemented */ + __assertfail + bx lr + + LEAF_END call_server_func + #endif END diff --git a/ntoskrnl/ntoskrnl.spec b/ntoskrnl/ntoskrnl.spec index 8d2dc6f4b23..ced05f9a8bd 100644 --- a/ntoskrnl/ntoskrnl.spec +++ b/ntoskrnl/ntoskrnl.spec @@ -1559,7 +1559,7 @@ @ cdecl -arch=x86_64 _local_unwind() @ cdecl _purecall() @ cdecl -arch=x86_64,arm _setjmp(ptr ptr) -@ cdecl -arch=x86_64 _setjmpex(ptr ptr) +@ cdecl -arch=x86_64,arm _setjmpex(ptr ptr) @ cdecl _snprintf() @ cdecl _snwprintf() @ cdecl _stricmp() diff --git a/sdk/lib/crt/except/arm/chkstk_ms.s b/sdk/lib/crt/except/arm/chkstk_ms.s deleted file mode 100644 index dcad0ca87e1..00000000000 --- a/sdk/lib/crt/except/arm/chkstk_ms.s +++ /dev/null @@ -1,27 +0,0 @@ -/* - * COPYRIGHT: BSD - See COPYING.ARM in the top level directory - * PROJECT: ReactOS CRT librariy - * PURPOSE: Implementation of _chkstk and _alloca_probe - * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) - * Yuntian Zhang (yuntian.zh@gmail.com) - */ - -/* INCLUDES ******************************************************************/ - -#include - -/* CODE **********************************************************************/ - TEXTAREA - - LEAF_ENTRY ___chkstk_ms - __assertfail - bx lr - LEAF_END __chkstk_ms - - LEAF_ENTRY __alloca_probe - __assertfail - bx lr - LEAF_END __alloca_probe - - END -/* EOF */