1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include <asm/export.h>
17 .set noat
18 .set noreorder
19.text
20 .globl memset
21 .globl __memset
22 .globl ___memset
23 .globl __memsetw
24 .globl __constant_c_memset
25
26 .ent ___memset
27.align 5
28___memset:
29 .frame $30,0,$26,0
30 .prologue 0
31
32 and $17,255,$1
33 insbl $17,1,$17
34 bis $17,$1,$17
35 sll $17,16,$1
36
37 bis $17,$1,$17
38 sll $17,32,$1
39 bis $17,$1,$17
40 ldq_u $31,0($30)
41
42.align 5
43__constant_c_memset:
44 addq $18,$16,$6
45 bis $16,$16,$0
46 xor $16,$6,$1
47 ble $18,end
48
49 bic $1,7,$1
50 beq $1,within_one_quad
51 and $16,7,$3
52 beq $3,aligned
53
54 ldq_u $4,0($16)
55 bis $16,$16,$5
56 insql $17,$16,$2
57 subq $3,8,$3
58
59 addq $18,$3,$18
60 mskql $4,$16,$4
61 subq $16,$3,$16
62 bis $2,$4,$1
63
64 bis $31,$31,$31
65 ldq_u $31,0($30)
66 stq_u $1,0($5)
67 bis $31,$31,$31
68
69.align 4
70aligned:
71 sra $18,3,$3
72 and $18,7,$18
73 bis $16,$16,$5
74 beq $3,no_quad
75
76.align 3
77loop:
78 stq $17,0($5)
79 subq $3,1,$3
80 addq $5,8,$5
81 bne $3,loop
82
83no_quad:
84 bis $31,$31,$31
85 beq $18,end
86 ldq $7,0($5)
87 mskqh $7,$6,$2
88
89 insqh $17,$6,$4
90 bis $2,$4,$1
91 stq $1,0($5)
92 ret $31,($26),1
93
94.align 3
95within_one_quad:
96 ldq_u $1,0($16)
97 insql $17,$16,$2
98 mskql $1,$16,$4
99 bis $2,$4,$2
100
101 mskql $2,$6,$4
102 mskqh $1,$6,$2
103 bis $2,$4,$1
104 stq_u $1,0($16)
105
106end:
107 ret $31,($26),1
108 .end ___memset
109EXPORT_SYMBOL(___memset)
110EXPORT_SYMBOL(__constant_c_memset)
111
112 .align 5
113 .ent __memsetw
114__memsetw:
115 .prologue 0
116
117 inswl $17,0,$1
118 inswl $17,2,$2
119 inswl $17,4,$3
120 or $1,$2,$1
121 inswl $17,6,$4
122 or $1,$3,$1
123 or $1,$4,$17
124 br __constant_c_memset
125
126 .end __memsetw
127EXPORT_SYMBOL(__memsetw)
128
129memset = ___memset
130__memset = ___memset
131 EXPORT_SYMBOL(memset)
132 EXPORT_SYMBOL(__memset)
133