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/rtls…
==============================================================================
--- 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(a)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.…
==============================================================================
--- 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
*/