Lines Matching +full:2 +full:f
29 * This function assumes 2- or 4-byte alignment. Other alignments will fail!
35 bgeu sum, val, 99f ; \
44 * is aligned on either a 2-byte or 4-byte boundary.
47 extui a5, a2, 0, 2
48 bnez a5, 8f /* branch if 2-byte aligned */
53 loopgtz a5, 2f
55 beqz a5, 2f
80 2:
81 extui a5, a3, 2, 3 /* remaining 4-byte chunks */
83 loopgtz a5, 3f
85 beqz a5, 3f
86 slli a5, a5, 2
97 _bbci.l a3, 1, 5f /* remaining 2-byte chunk */
100 addi a2, a2, 2
102 _bbci.l a3, 0, 7f /* remaining 1-byte chunk */
112 /* uncommon case, buf is 2-byte aligned */
118 bnez a5, 8f /* branch if 1-byte aligned */
120 l16ui a6, a2, 0 /* common case, len >= 2 */
122 addi a2, a2, 2 /* adjust buf */
123 addi a3, a3, -2 /* adjust len */
131 srli a5, a3, 2 /* 4-byte chunks */
133 loopgtz a5, 2f
135 beqz a5, 2f
136 slli a5, a5, 2
156 2:
157 _bbci.l a3, 1, 3f /* remaining 2-byte chunk, still odd addr */
167 addi a2, a2, 2
205 extui a9, a10, 0, 2
206 beqz a9, 1f /* branch if both are 4-byte aligned */
207 bbsi.l a10, 0, 5f /* branch if one address is odd */
208 j 3f /* one address is 2-byte aligned */
210 /* _bbsi.l a10, 0, 5f */ /* branch if odd address */
211 /* _bbsi.l a10, 1, 3f */ /* branch if 2-byte-aligned address */
217 loopgtz a10, 2f
219 beqz a10, 2f
224 EX(10f) l32i a9, a2, 0
225 EX(10f) l32i a8, a2, 4
226 EX(10f) s32i a9, a3, 0
227 EX(10f) s32i a8, a3, 4
230 EX(10f) l32i a9, a2, 8
231 EX(10f) l32i a8, a2, 12
232 EX(10f) s32i a9, a3, 8
233 EX(10f) s32i a8, a3, 12
236 EX(10f) l32i a9, a2, 16
237 EX(10f) l32i a8, a2, 20
238 EX(10f) s32i a9, a3, 16
239 EX(10f) s32i a8, a3, 20
242 EX(10f) l32i a9, a2, 24
243 EX(10f) l32i a8, a2, 28
244 EX(10f) s32i a9, a3, 24
245 EX(10f) s32i a8, a3, 28
253 2:
254 extui a10, a4, 2, 3 /* remaining 4-byte chunks */
255 extui a4, a4, 0, 2 /* reset len for general-case, 2-byte chunks */
257 loopgtz a10, 3f
259 beqz a10, 3f
260 slli a10, a10, 2
264 EX(10f) l32i a9, a2, 0
265 EX(10f) s32i a9, a3, 0
276 one 2-byte chunk. (2) It branches to here from above if
277 either src or dst is 2-byte aligned, and we process all bytes
286 srli a10, a4, 1 /* 2-byte chunks */
288 loopgtz a10, 4f
290 beqz a10, 4f
292 add a10, a10, a2 /* a10 = end of last 2-byte src chunk */
295 EX(10f) l16ui a9, a2, 0
296 EX(10f) s16i a9, a3, 0
298 addi a2, a2, 2
299 addi a3, a3, 2
305 _bbci.l a4, 0, 8f /* 1-byte chunk */
306 EX(10f) l8ui a9, a2, 0
307 EX(10f) s8i a9, a3, 0
323 loopgtz a10, 6f
325 beqz a10, 6f
327 add a10, a10, a2 /* a10 = end of last odd-aligned, 2-byte src chunk */
330 EX(10f) l8ui a9, a2, 0
331 EX(10f) l8ui a8, a2, 1
332 EX(10f) s8i a9, a3, 0
333 EX(10f) s8i a8, a3, 1
341 addi a2, a2, 2
342 addi a3, a3, 2