Linux 3.11-rc3
[cris-mirror.git] / arch / arm / lib / csumipv6.S
blob3ac6ef01bc43a4cc13465822ead08f18eb88ea0c
1 /*
2  *  linux/arch/arm/lib/csumipv6.S
3  *
4  *  Copyright (C) 1995-1998 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #include <linux/linkage.h>
11 #include <asm/assembler.h>
13                 .text
15 ENTRY(__csum_ipv6_magic)
16                 str     lr, [sp, #-4]!
17                 adds    ip, r2, r3
18                 ldmia   r1, {r1 - r3, lr}
19                 adcs    ip, ip, r1
20                 adcs    ip, ip, r2
21                 adcs    ip, ip, r3
22                 adcs    ip, ip, lr
23                 ldmia   r0, {r0 - r3}
24                 adcs    r0, ip, r0
25                 adcs    r0, r0, r1
26                 adcs    r0, r0, r2
27                 ldr     r2, [sp, #4]
28                 adcs    r0, r0, r3
29                 adcs    r0, r0, r2
30                 adcs    r0, r0, #0
31                 ldmfd   sp!, {pc}
32 ENDPROC(__csum_ipv6_magic)