Blame view

kernel/linux-imx6_3.14.28/arch/sparc/lib/ipcsum.S 616 Bytes
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  #include <linux/linkage.h>
  
  	.text
  ENTRY(ip_fast_csum) /* %o0 = iph, %o1 = ihl */
  	sub	%o1, 4, %g7
  	lduw	[%o0 + 0x00], %o2
  	lduw	[%o0 + 0x04], %g2
  	lduw	[%o0 + 0x08], %g3
  	addcc	%g2, %o2, %o2
  	lduw	[%o0 + 0x0c], %g2
  	addccc	%g3, %o2, %o2
  	lduw	[%o0 + 0x10], %g3
  
  	addccc	%g2, %o2, %o2
  	addc	%o2, %g0, %o2
  1:	addcc	%g3, %o2, %o2
  	add	%o0, 4, %o0
  	addccc	%o2, %g0, %o2
  	subcc	%g7, 1, %g7
  	be,a,pt	%icc, 2f
  	 sll	%o2, 16, %g2
  
  	lduw	[%o0 + 0x10], %g3
  	ba,pt	%xcc, 1b
  	 nop
  2:	addcc	%o2, %g2, %g2
  	srl	%g2, 16, %o2
  	addc	%o2, %g0, %o2
  	xnor	%g0, %o2, %o2
  	set	0xffff, %o1
  	retl
  	 and	%o2, %o1, %o0
  ENDPROC(ip_fast_csum)