FreeBSD/Linux Kernel Cross Reference
sys/mtx/inb.s
1 #include "mem.h"
2
3 #define BDNZ BC 16,0,
4 #define BDNE BC 0,2,
5
6 TEXT inb(SB), $0
7 OR $IOMEM, R3
8 MOVBZ (R3), R3
9 RETURN
10
11 TEXT insb(SB), $0
12 MOVW v+4(FP), R4
13 MOVW n+8(FP), R5
14 MOVW R5, CTR
15 OR $IOMEM, R3
16 SUB $1, R4
17 insb1:
18 MOVBZ (R3), R7
19 MOVBU R7, 1(R4)
20 BDNZ insb1
21 RETURN
22
23 TEXT outb(SB), $0
24 MOVW v+4(FP), R4
25 OR $IOMEM, R3
26 EIEIO
27 MOVB R4, (R3)
28 RETURN
29
30 TEXT outsb(SB), $0
31 MOVW v+4(FP), R4
32 MOVW n+8(FP), R5
33 MOVW R5, CTR
34 OR $IOMEM, R3
35 SUB $1, R4
36 outsb1:
37 EIEIO
38 MOVBZU 1(R4), R7
39 MOVB R7, (R3)
40 BDNZ outsb1
41 RETURN
42
43 TEXT ins(SB), $0
44 OR $IOMEM, R3
45 EIEIO
46 MOVHBR (R3), R3
47 RETURN
48
49 TEXT inss(SB), $0
50 MOVW v+4(FP), R4
51 MOVW n+8(FP), R5
52 MOVW R5, CTR
53 OR $IOMEM, R3
54 SUB $2, R4
55 inss1:
56 EIEIO
57 MOVHZ (R3), R7
58 MOVHU R7, 2(R4)
59 BDNZ inss1
60 RETURN
61
62 TEXT outs(SB), $0
63 MOVW v+4(FP), R4
64 OR $IOMEM, R3
65 EIEIO
66 MOVHBR R4, (R3)
67 RETURN
68
69 TEXT outss(SB), $0
70 MOVW v+4(FP), R4
71 MOVW n+8(FP), R5
72 MOVW R5, CTR
73 OR $IOMEM, R3
74 SUB $2, R4
75 outss1:
76 EIEIO
77 MOVHZU 2(R4), R7
78 MOVH R7, (R3)
79 BDNZ outss1
80 RETURN
81
82 TEXT inl(SB), $0
83 OR $IOMEM, R3
84 EIEIO
85 MOVWBR (R3), R3
86 RETURN
87
88 TEXT insl(SB), $0
89 MOVW v+4(FP), R4
90 MOVW n+8(FP), R5
91 MOVW R5, CTR
92 OR $IOMEM, R3
93 SUB $4, R4
94 insl1:
95 EIEIO
96 MOVW (R3), R7
97 MOVWU R7, 4(R4)
98 BDNZ insl1
99 RETURN
100
101 TEXT outl(SB), $0
102 MOVW v+4(FP), R4
103 OR $IOMEM, R3
104 EIEIO
105 MOVWBR R4, (R3)
106 RETURN
107
108 TEXT outsl(SB), $0
109 MOVW v+4(FP), R4
110 MOVW n+8(FP), R5
111 MOVW R5, CTR
112 OR $IOMEM, R3
113 SUB $4, R4
114 outsl1:
115 EIEIO
116 MOVWU 4(R4), R7
117 MOVW R7, (R3)
118 BDNZ outsl1
119 RETURN
Cache object: bea99022b7947b8bc84a8ea693ffcaba
|