[ros-diffs] [tkreuzer] 45428: [RTL] Make slist.S ML64 compatible

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri Feb 5 03:51:38 CET 2010


Author: tkreuzer
Date: Fri Feb  5 03:51:38 2010
New Revision: 45428

URL: http://svn.reactos.org/svn/reactos?rev=45428&view=rev
Log:
[RTL]
Make slist.S ML64 compatible

Modified:
    branches/ros-amd64-bringup/reactos/lib/rtl/amd64/slist.S

Modified: branches/ros-amd64-bringup/reactos/lib/rtl/amd64/slist.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/rtl/amd64/slist.S?rev=45428&r1=45427&r2=45428&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/rtl/amd64/slist.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/rtl/amd64/slist.S [iso-8859-1] Fri Feb  5 03:51:38 2010
@@ -9,44 +9,46 @@
 #include <reactos/asm.h>
 #include <ndk/amd64/asm.h>
 
-#define SLIST8A_DEPTH_MASK       0x000000000000FFFF
-#define SLIST8A_DEPTH_INC        0x0000000000000001
-#define SLIST8A_SEQUENCE_MASK    0x0000000001FF0000
-#define SLIST8A_SEQUENCE_INC     0x0000000000010000
-#define SLIST8A_NEXTENTRY_MASK   0xFFFFFFFFFE000000
+#define SLIST8A_DEPTH_MASK       HEX(000000000000FFFF)
+#define SLIST8A_DEPTH_INC        HEX(0000000000000001)
+#define SLIST8A_SEQUENCE_MASK    HEX(0000000001FF0000)
+#define SLIST8A_SEQUENCE_INC     HEX(0000000000010000)
+#define SLIST8A_NEXTENTRY_MASK   HEX(FFFFFFFFFE000000)
 #define SLIST8A_NEXTENTRY_SHIFT  21
-#define SLIST8B_HEADERTYPE_MASK  0x0000000000000001
-#define SLIST8B_INIT_MASK        0x0000000000000002
-#define SLIST8B_REGION_MASK      0xE000000000000000
-#define SLIST8_POINTER_MASK      0x000007FFFFFFFFF0
-
-#define SLIST16A_DEPTH_MASK      0x000000000000FFFF
-#define SLIST16A_DEPTH_INC       0x0000000000000001
-#define SLIST16A_SEQUENCE_MASK   0xFFFFFFFFFFFF0000
-#define SLIST16A_SEQUENCE_INC    0x0000000000010000
-#define SLIST16B_HEADERTYPE_MASK 0x0000000000000001
-#define SLIST16B_INIT_MASK       0x0000000000000002
-#define SLIST16B_NEXTENTY_MASK   0xFFFFFFFFFFFFFFF0
+#define SLIST8B_HEADERTYPE_MASK  HEX(0000000000000001)
+#define SLIST8B_INIT_MASK        HEX(0000000000000002)
+#define SLIST8B_REGION_MASK      HEX(E000000000000000)
+#define SLIST8_POINTER_MASK      HEX(000007FFFFFFFFF0)
+
+#define SLIST16A_DEPTH_MASK      HEX(000000000000FFFF)
+#define SLIST16A_DEPTH_INC       HEX(0000000000000001)
+#define SLIST16A_SEQUENCE_MASK   HEX(FFFFFFFFFFFF0000)
+#define SLIST16A_SEQUENCE_INC    HEX(0000000000010000)
+#define SLIST16B_HEADERTYPE_MASK HEX(0000000000000001)
+#define SLIST16B_INIT_MASK       HEX(0000000000000002)
+#define SLIST16B_NEXTENTY_MASK   HEX(FFFFFFFFFFFFFFF0)
 
 
 /* FUNCTIONS ****************************************************************/
 
-.global ExpInterlockedPopEntrySList
-.global ExpInterlockedPopEntrySListResume
-.global ExpInterlockedPopEntrySListFault
-.global ExpInterlockedPopEntrySListEnd
-.global ExpInterlockedPopEntrySListResume16
-.global ExpInterlockedPopEntrySListFault16
-.global ExpInterlockedPopEntrySListEnd16
-.global ExpInterlockedPushEntrySList
-.global ExpInterlockedFlushSList
+.code64
+
+PUBLIC ExpInterlockedPopEntrySList
+PUBLIC ExpInterlockedPopEntrySListResume
+PUBLIC ExpInterlockedPopEntrySListFault
+PUBLIC ExpInterlockedPopEntrySListEnd
+PUBLIC ExpInterlockedPopEntrySListResume16
+PUBLIC ExpInterlockedPopEntrySListFault16
+PUBLIC ExpInterlockedPopEntrySListEnd16
+PUBLIC ExpInterlockedPushEntrySList
+PUBLIC ExpInterlockedFlushSList
 
 /* PSLIST_ENTRY
  * NTAPI
  * RtlInterlockedPopEntrySList(
  *     IN PSLIST_HEADER ListHead);
  */
-.proc RtlInterlockedPopEntrySList
+RtlInterlockedPopEntrySList:
 ExpInterlockedPopEntrySList:
 
     /* Load ListHead->Region into rdx */
@@ -70,10 +72,10 @@
 
     /* Copy Depth and Sequence number and adjust Depth */
     lea r8, [rax - SLIST8A_DEPTH_INC]
-    and r8, SLIST8A_SEQUENCE_MASK | SLIST8A_DEPTH_MASK
+    and r8, (SLIST8A_SEQUENCE_MASK OR SLIST8A_DEPTH_MASK)
 
     /* Create a pointer template from rcx in rdx */
-    mov rdx, ~SLIST8_POINTER_MASK
+    mov rdx, (NOT SLIST8_POINTER_MASK)
     and rdx, rcx
 
     /* Shift the NextEntry pointer */
@@ -106,7 +108,7 @@
     shr rax, SLIST8A_NEXTENTRY_SHIFT
 
     /* Use rcx as pointer template */
-    mov rdx, ~SLIST8_POINTER_MASK
+    mov rdx, (NOT SLIST8_POINTER_MASK)
     and rdx, rcx
 
     /* Combine result and return */
@@ -139,7 +141,7 @@
     mov rcx, [r9]
 
     /* Set ListHead->HeaderType = 1 and  ListHead->Init = 1 */
-    or rcx, 0x3
+    or rcx, 3
 
     /* Copy Depth and Sequence number and adjust Depth */
     lea rbx, [rax - SLIST16A_DEPTH_INC]
@@ -164,8 +166,6 @@
     xor rax, rax
     pop rbx
     ret
-
-.endp RtlInterlockedPopEntrySList
 
 
 /* PSLIST_ENTRY
@@ -174,7 +174,7 @@
  *     IN PSLIST_HEADER ListHead,
  *     IN PSLIST_ENTRY ListEntry);
  */
-.proc RtlInterlockedPushEntrySList
+RtlInterlockedPushEntrySList:
 ExpInterlockedPushEntrySList:
 
     /* Load ListHead->Alignment into rax */
@@ -200,7 +200,7 @@
     shr r8, SLIST8A_NEXTENTRY_SHIFT
 
     /* Create a pointer template from rcx in rdx */
-    mov r9, ~SLIST8_POINTER_MASK
+    mov r9, (NOT SLIST8_POINTER_MASK)
     and r9, rcx
 
     /* Combine to new pointer and save as ListEntry->NextEntry */
@@ -217,7 +217,7 @@
 
     /* Copy and adjust depth and sequence number */
     lea r9, [rax + SLIST8A_DEPTH_INC + SLIST8A_SEQUENCE_INC]
-    and r9, SLIST8A_SEQUENCE_MASK | SLIST8A_DEPTH_MASK
+    and r9, SLIST8A_SEQUENCE_MASK OR SLIST8A_DEPTH_MASK
 
     /* Combine to exchange value in r8 */
     or r8, r9
@@ -247,7 +247,7 @@
 
     /* Set ListHead->HeaderType = 1 and  ListHead->Init = 1 */
     mov rcx, rdx
-    or rcx, 0x3
+    or rcx, 3
 
     mov rdx, [r8 + 8]
 
@@ -277,14 +277,13 @@
     pop rbx
     ret
 
-.endp RtlInterlockedPushEntrySList
 
 /* PSLIST_ENTRY
  * NTAPI
  * RtlInterlockedFlushSList(
  *     IN PSINGLE_LIST_ENTRY ListHead);
  */
-.proc RtlInterlockedFlushSList
+RtlInterlockedFlushSList:
 ExpInterlockedFlushSList:
 
     /* Load ListHead->Region into rdx */
@@ -308,7 +307,7 @@
     jnz RtlInterlockedFlushSListLoop
 
     /* Use rcx as pointer template */
-    mov rdx, ~SLIST8_POINTER_MASK
+    mov rdx, (not SLIST8_POINTER_MASK)
     or rdx, rcx
 
     /* Combine result and return */
@@ -321,7 +320,7 @@
 
     mov rdx, [rcx + 8]
     xor rbx, rbx
-    mov rcx, 0x3
+    mov rcx, 3
 
 RtlInterlockedFlushSListLoop16:
 
@@ -339,4 +338,4 @@
     pop rbx
     ret
 
-.endp RtlInterlockedFlushSList
+END




More information about the Ros-diffs mailing list