xref: /openbmc/linux/arch/arm/lib/csumipv6.S (revision e3d786a3)
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>
12
13		.text
14
15ENTRY(__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}
32ENDPROC(__csum_ipv6_magic)
33
34