[DRWTSN32] Print some extra exception info
[reactos.git] / ntoskrnl / ex / powerpc / ioport.s
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/ex/powerpc/ioport.s
5 * PURPOSE: FASTCALL Interlocked Functions
6 * PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #include <ndk/asm.h>
12
13 /* GLOBALS *******************************************************************/
14
15 .globl READ_REGISTER_UCHAR
16 .globl READ_REGISTER_USHORT
17 .globl READ_REGISTER_ULONG
18 .globl READ_REGISTER_BUFFER_UCHAR
19 .globl READ_REGISTER_BUFFER_USHORT
20 .globl READ_REGISTER_BUFFER_ULONG
21 .globl WRITE_REGISTER_UCHAR
22 .globl WRITE_REGISTER_USHORT
23 .globl WRITE_REGISTER_ULONG
24 .globl WRITE_REGISTER_BUFFER_UCHAR
25 .globl WRITE_REGISTER_BUFFER_USHORT
26 .globl WRITE_REGISTER_BUFFER_ULONG
27
28 /* FUNCTIONS *****************************************************************/
29
30 READ_REGISTER_UCHAR:
31 /* Return the requested memory location */
32 sync
33 eieio
34 lbz 3,0(3)
35 blr
36
37 READ_REGISTER_USHORT:
38 /* Return the requested memory location */
39 sync
40 eieio
41 lhz 3,0(3)
42 blr
43
44 READ_REGISTER_ULONG:
45 /* Return the requested memory location */
46 sync
47 eieio
48 lwz 3,0(3)
49 blr
50
51 READ_REGISTER_BUFFER_UCHAR:
52 1:
53 cmpwi 0,5,0
54 beq 2f
55
56 lbz 0,0(4)
57 stb 0,0(3)
58
59 addi 3,3,1
60 addi 4,4,1
61 subi 5,5,1
62 b 1b
63 2:
64 eieio
65 sync
66 blr
67
68 READ_REGISTER_BUFFER_USHORT:
69 1:
70 cmpwi 0,5,0
71 beq 2f
72
73 lhz 0,0(4)
74 sth 0,0(3)
75
76 addi 3,3,2
77 addi 4,4,2
78 subi 5,5,2
79 b 1b
80 2:
81 eieio
82 sync
83 blr
84
85 READ_REGISTER_BUFFER_ULONG:
86 1:
87 cmpwi 0,5,0
88 beq 2f
89
90 lwz 0,0(4)
91 stw 0,0(3)
92
93 addi 3,3,4
94 addi 4,4,4
95 subi 5,5,4
96 b 1b
97 2:
98 eieio
99 sync
100 blr
101
102 WRITE_REGISTER_UCHAR:
103 stb 4,0(3)
104 eieio
105 sync
106 blr
107
108 WRITE_REGISTER_USHORT:
109 sth 4,0(3)
110 eieio
111 sync
112 blr
113
114 WRITE_REGISTER_ULONG:
115 stw 4,0(3)
116 eieio
117 sync
118 blr
119
120 WRITE_REGISTER_BUFFER_UCHAR:
121 sync
122 eieio
123 1:
124 cmpwi 0,5,0
125 beq 2f
126
127 lbz 0,0(4)
128 stb 0,0(3)
129
130 addi 3,3,1
131 addi 4,4,1
132 subi 5,5,1
133 b 1b
134 2:
135 blr
136
137 WRITE_REGISTER_BUFFER_USHORT:
138 sync
139 eieio
140 1:
141 cmpwi 0,5,0
142 beq 2f
143
144 lhz 0,0(4)
145 sth 0,0(3)
146
147 addi 3,3,2
148 addi 4,4,2
149 subi 5,5,2
150 b 1b
151 2:
152 blr
153
154 WRITE_REGISTER_BUFFER_ULONG:
155 sync
156 eieio
157 1:
158 cmpwi 0,5,0
159 beq 2f
160
161 lwz 0,0(4)
162 stw 0,0(3)
163
164 addi 3,3,4
165 addi 4,4,4
166 subi 5,5,4
167 b 1b
168 2:
169 blr
170
171 /* EOF */