xref: /linux/arch/arm/lib/csumipv6.S (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 *  linux/arch/arm/lib/csumipv6.S
4 *
5 *  Copyright (C) 1995-1998 Russell King
6 */
7#include <linux/linkage.h>
8#include <asm/assembler.h>
9
10		.text
11
12ENTRY(__csum_ipv6_magic)
13		str	lr, [sp, #-4]!
14		adds	ip, r2, r3
15		ldmia	r1, {r1 - r3, lr}
16		adcs	ip, ip, r1
17		adcs	ip, ip, r2
18		adcs	ip, ip, r3
19		adcs	ip, ip, lr
20		ldmia	r0, {r0 - r3}
21		adcs	r0, ip, r0
22		adcs	r0, r0, r1
23		adcs	r0, r0, r2
24		ldr	r2, [sp, #4]
25		adcs	r0, r0, r3
26		adcs	r0, r0, r2
27		adcs	r0, r0, #0
28		ldmfd	sp!, {pc}
29ENDPROC(__csum_ipv6_magic)
30
31