[RTL]: Rtl ByteSwap functions should use intrinsics, isntead of assembly code. This...
authorSir Richard <sir_richard@svn.reactos.org>
Tue, 3 Aug 2010 01:56:35 +0000 (01:56 +0000)
committerSir Richard <sir_richard@svn.reactos.org>
Tue, 3 Aug 2010 01:56:35 +0000 (01:56 +0000)
svn path=/branches/cmake-bringup/; revision=48425

lib/rtl/i386/rtlswap.S [deleted file]
lib/rtl/largeint.c

diff --git a/lib/rtl/i386/rtlswap.S b/lib/rtl/i386/rtlswap.S
deleted file mode 100644 (file)
index 6ded910..0000000
+++ /dev/null
@@ -1,53 +0,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
-
-
index cc74752..5934f8c 100644 (file)
 
 /* 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
  */