123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include <linux/linkage.h>
- #define SMALL 7
- ENTRY_CFI(memset)
- mov_s r4,r0
- or r12,r0,r2
- bmsk.f r12,r12,1
- extb_s r1,r1
- asl r3,r1,8
- beq.d .Laligned
- or_s r1,r1,r3
- brls r2,SMALL,.Ltiny
- add r3,r2,r0
- stb r1,[r3,-1]
- bclr_s r3,r3,0
- stw r1,[r3,-2]
- bmsk.f r12,r0,1
- add_s r2,r2,r12
- sub.ne r2,r2,4
- stb.ab r1,[r4,1]
- and r4,r4,-2
- stw.ab r1,[r4,2]
- and r4,r4,-4
- .Laligned:
- asl r3,r1,16
- lsr.f lp_count,r2,2
- or_s r1,r1,r3
- lpne .Loop_end
- st.ab r1,[r4,4]
- .Loop_end:
- j_s [blink]
- .balign 4
- .Ltiny:
- mov.f lp_count,r2
- lpne .Ltiny_end
- stb.ab r1,[r4,1]
- .Ltiny_end:
- j_s [blink]
- END_CFI(memset)
- ENTRY_CFI(memzero)
-
- mov r2, r1
- mov r1, 0
- b memset
- END_CFI(memzero)
|