• Eric Pouech's avatar
    ntdll: Fix export and calling convention of RtlUlonglongByteSwap(). · 495711c2
    Eric Pouech authored
    The RtlU*ByteSwap() family:
    - has FASTCALL calling convention
    - is only exported from ntdll and ntoskrnl.exe in 32bit mode
      (didn't check ARM though)
    
    Wine's support for RtlUlonglongByteSwap() doesn't follow these constraints.
    Note: in __fastcall, 64bit paramaters are passed on the stack, to
    RtlUlonglongByteSwap() calling convention acts as __stdcall.
    
    So:
    - fix ntdll.spec (resp. ntoskrnl.exe.spec) to only export
      (resp. forward) RtlUlonglongByteSwap for i386
    - always provide an inline implementation in winternl.h
    - reimplement ntdll.RtlUlonglongByteSwap() for i386 with
      __fastcall calling convention.
    - fix ntdll/tests/rtl.c to use correct calling convention.
    - add test in ntdll/tests/rtl.c for inlined version.
    
    Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53536Signed-off-by: 's avatarEric Pouech <eric.pouech@gmail.com>
    495711c2
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...