Author: sir_richard Date: Tue Aug 3 01:56:35 2010 New Revision: 48425
URL: http://svn.reactos.org/svn/reactos?rev=48425&view=rev Log: [RTL]: Rtl ByteSwap functions should use intrinsics, isntead of assembly code. This should be merged into trunk!
Removed: branches/cmake-bringup/lib/rtl/i386/rtlswap.S Modified: branches/cmake-bringup/lib/rtl/largeint.c
Removed: branches/cmake-bringup/lib/rtl/i386/rtlswap.S URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/i386/rtlsw... ============================================================================== --- branches/cmake-bringup/lib/rtl/i386/rtlswap.S [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/i386/rtlswap.S (removed) @@ -1,53 +1,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Run-Time Library - * PURPOSE: Byte swap functions - * FILE: lib/rtl/i386/rtlswap.S - * PROGRAMER: Alex Ionescu (alex.ionescu@reactos.org) - */ - -.intel_syntax noprefix - -.globl @RtlUshortByteSwap@4 -.globl @RtlUlongByteSwap@4 -.globl @RtlUlonglongByteSwap@8 - -/* FUNCTIONS ***************************************************************/ - -.func @RtlUshortByteSwap@4, @RtlUshortByteSwap@4 -@RtlUshortByteSwap@4: - - /* Swap high and low bits */ - mov ah, cl - mov al, ch - ret -.endfunc - -.func @RtlUlongByteSwap@4, @RtlUlongByteSwap@4 -@RtlUlongByteSwap@4: - - /* Swap high and low bits */ - mov eax, ecx - bswap eax - ret -.endfunc - -.func @RtlUlonglongByteSwap@8, @RtlUlonglongByteSwap@8 -@RtlUlonglongByteSwap@8: - - /* Get 64-bit integer */ - mov edx, [esp+8] - mov eax, [esp+4] - - /* Swap it */ - bswap edx - bswap eax - - /* Return it */ - mov ecx, eax - mov eax, edx - mov edx, ecx - ret -.endfunc - -
Modified: branches/cmake-bringup/lib/rtl/largeint.c URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/lib/rtl/largeint.c... ============================================================================== --- branches/cmake-bringup/lib/rtl/largeint.c [iso-8859-1] (original) +++ branches/cmake-bringup/lib/rtl/largeint.c [iso-8859-1] Tue Aug 3 01:56:35 2010 @@ -14,6 +14,40 @@
/* FUNCTIONS *****************************************************************/
+#undef RtlUlonglongByteSwap +#undef RtlUlongByteSwap +#undef RtlUshortByteSwap + +/* + * @implemented + */ +USHORT +FASTCALL +RtlUshortByteSwap(IN USHORT Source) +{ + return _byteswap_ushort(Source); +} + +/* + * @implemented + */ +ULONG +FASTCALL +RtlUlongByteSwap(IN ULONG Source) +{ + return _byteswap_ulong(Source); +} + +/* + * @implemented + */ +ULONGLONG +FASTCALL +RtlUlonglongByteSwap(IN ULONGLONG Source) +{ + return _byteswap_uint64(Source); +} + /* * @implemented */