1
2
3
4
5
6
7
8
9
10
11
12
13 .text
14 .global FUNCNAME
15 .type FUNCNAME, @function
16 .p2align 5
17FUNCNAME:
18 {
19 p0 = cmp.gtu(bytes,
20 if (!p0.new) jump:nt .Ldone
21 r3 = or(dst,src)
22 r4 = xor(dst,src)
23 }
24 {
25 p1 = cmp.gtu(bytes,
26 p0 = bitsclr(r3,
27 if (!p0.new) jump:nt .Loop_not_aligned_8
28 src_dst_sav = combine(src,dst)
29 }
30
31 {
32 loopcount = lsr(bytes,
33 if (!p1) jump .Lsmall
34 }
35 p3=sp1loop0(.Loop8,loopcount)
36.Loop8:
378080:
388180:
39 {
40 if (p3) memd(dst++
41 d_dbuf = memd(src++
42 }:endloop0
438190:
44 {
45 memd(dst++
46 bytes -= asl(loopcount,
47 jump .Lsmall
48 }
49
50.Loop_not_aligned_8:
51 {
52 p0 = bitsclr(r4,
53 if (p0.new) jump:nt .Lalign
54 }
55 {
56 p0 = bitsclr(r3,
57 if (!p0.new) jump:nt .Loop_not_aligned_4
58 p1 = cmp.gtu(bytes,
59 }
60
61 {
62 if (!p1) jump .Lsmall
63 loopcount = lsr(bytes,
64 }
65 p3=sp1loop0(.Loop4,loopcount)
66.Loop4:
674080:
684180:
69 {
70 if (p3) memw(dst++
71 w_dbuf = memw(src++
72 }:endloop0
734190:
74 {
75 memw(dst++
76 bytes -= asl(loopcount,
77 jump .Lsmall
78 }
79
80.Loop_not_aligned_4:
81 {
82 p0 = bitsclr(r3,
83 if (!p0.new) jump:nt .Loop_not_aligned
84 p1 = cmp.gtu(bytes,
85 }
86
87 {
88 if (!p1) jump .Lsmall
89 loopcount = lsr(bytes,
90 }
91 p3=sp1loop0(.Loop2,loopcount)
92.Loop2:
932080:
942180:
95 {
96 if (p3) memh(dst++
97 w_dbuf = memuh(src++
98 }:endloop0
992190:
100 {
101 memh(dst++
102 bytes -= asl(loopcount,
103 jump .Lsmall
104 }
105
106.Loop_not_aligned:
107 p3=sp1loop0(.Loop1,bytes)
108.Loop1:
1091080:
1101180:
111 {
112 if (p3) memb(dst++
113 w_dbuf = memub(src++
114 }:endloop0
115
1161190:
117 {
118 memb(dst) = w_dbuf
119 jumpr r31
120 r0 =
121 }
122
123.Lsmall:
124 {
125 p0 = cmp.gtu(bytes,
126 if (p0.new) jump:nt .Loop_not_aligned
127 }
128.Ldone:
129 {
130 r0 =
131 jumpr r31
132 }
133 .falign
134.Lalign:
1351000:
136 {
137 if (p0.new) w_dbuf = memub(src)
138 p0 = tstbit(src,
139 if (!p1) jump .Lsmall
140 }
1411100:
142 {
143 if (p0) memb(dst++
144 if (p0) bytes = add(bytes,
145 if (p0) src = add(src,
146 }
1472000:
148 {
149 if (p0.new) w_dbuf = memuh(src)
150 p0 = tstbit(src,
151 if (!p1) jump .Lsmall
152 }
1532100:
154 {
155 if (p0) memh(dst++
156 if (p0) bytes = add(bytes,
157 if (p0) src = add(src,
158 }
1594000:
160 {
161 if (p0.new) w_dbuf = memw(src)
162 p0 = tstbit(src,
163 if (!p1) jump .Lsmall
164 }
1654100:
166 {
167 if (p0) memw(dst++
168 if (p0) bytes = add(bytes,
169 if (p0) src = add(src,
170 jump FUNCNAME
171 }
172 .size FUNCNAME,.-FUNCNAME
173