1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include <asm/export.h>
17 .globl csum_ipv6_magic
18 .align 4
19 .ent csum_ipv6_magic
20 .frame $30,0,$26,0
21csum_ipv6_magic:
22 .prologue 0
23
24 ldq_u $0,0($16)
25 zapnot $20,15,$20
26 extqh $18,1,$4
27 ldq_u $21,7($16)
28
29 extbl $18,1,$5
30 ldq_u $1,8($16)
31 extbl $18,2,$6
32 ldq_u $22,15($16)
33
34 extbl $18,3,$18
35 ldq_u $2,0($17)
36 sra $4,32,$4
37 ldq_u $23,7($17)
38
39 extql $0,$16,$0
40 ldq_u $3,8($17)
41 extqh $21,$16,$21
42 ldq_u $24,15($17)
43
44 sll $5,16,$5
45 or $0,$21,$0
46 extql $1,$16,$1
47 addq $20,$0,$20
48
49 extqh $22,$16,$22
50 cmpult $20,$0,$0
51 sll $6,8,$6
52 or $1,$22,$1
53
54 extql $2,$17,$2
55 or $4,$18,$18
56 extqh $23,$17,$23
57 or $5,$6,$5
58
59 extql $3,$17,$3
60 or $2,$23,$2
61 extqh $24,$17,$24
62 or $18,$5,$18
63
64 extwh $19,7,$7
65 or $3,$24,$3
66 extbl $19,1,$19
67 addq $20,$1,$20
68
69 or $19,$7,$19
70 cmpult $20,$1,$1
71 sll $19,48,$19
72 nop
73
74 sra $19,32,$19
75 addq $20,$2,$20
76 cmpult $20,$2,$2
77 addq $20,$3,$20
78
79 cmpult $20,$3,$3
80 addq $20,$18,$20
81 cmpult $20,$18,$18
82 addq $20,$19,$20
83
84 cmpult $20,$19,$19
85 addq $0,$1,$0
86 addq $2,$3,$2
87 addq $18,$19,$18
88
89 addq $0,$2,$0
90 addq $20,$18,$20
91 addq $0,$20,$0
92 unop
93
94 extwl $0,2,$2
95 zapnot $0,3,$3
96 extwl $0,4,$1
97 addq $2,$3,$3
98
99 extwl $0,6,$0
100 addq $3,$1,$3
101 addq $0,$3,$0
102 unop
103
104 extwl $0,2,$1
105 zapnot $0,3,$0
106 addq $0,$1,$0
107 unop
108
109 extwl $0,2,$1
110 zapnot $0,3,$0
111 addq $0,$1,$0
112 not $0,$0
113
114 zapnot $0,3,$0
115 ret
116
117 .end csum_ipv6_magic
118 EXPORT_SYMBOL(csum_ipv6_magic)
119