xref: /openbmc/linux/arch/arm/lib/csumipv6.S (revision d2912cb1)
1d2912cb1SThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-only */
21da177e4SLinus Torvalds/*
31da177e4SLinus Torvalds *  linux/arch/arm/lib/csumipv6.S
41da177e4SLinus Torvalds *
51da177e4SLinus Torvalds *  Copyright (C) 1995-1998 Russell King
61da177e4SLinus Torvalds */
71da177e4SLinus Torvalds#include <linux/linkage.h>
81da177e4SLinus Torvalds#include <asm/assembler.h>
91da177e4SLinus Torvalds
101da177e4SLinus Torvalds		.text
111da177e4SLinus Torvalds
121da177e4SLinus TorvaldsENTRY(__csum_ipv6_magic)
131da177e4SLinus Torvalds		str	lr, [sp, #-4]!
141da177e4SLinus Torvalds		adds	ip, r2, r3
151da177e4SLinus Torvalds		ldmia	r1, {r1 - r3, lr}
161da177e4SLinus Torvalds		adcs	ip, ip, r1
171da177e4SLinus Torvalds		adcs	ip, ip, r2
181da177e4SLinus Torvalds		adcs	ip, ip, r3
191da177e4SLinus Torvalds		adcs	ip, ip, lr
201da177e4SLinus Torvalds		ldmia	r0, {r0 - r3}
211da177e4SLinus Torvalds		adcs	r0, ip, r0
221da177e4SLinus Torvalds		adcs	r0, r0, r1
231da177e4SLinus Torvalds		adcs	r0, r0, r2
241da177e4SLinus Torvalds		ldr	r2, [sp, #4]
251da177e4SLinus Torvalds		adcs	r0, r0, r3
261da177e4SLinus Torvalds		adcs	r0, r0, r2
271da177e4SLinus Torvalds		adcs	r0, r0, #0
281b93a717SRussell King		ldmfd	sp!, {pc}
2993ed3970SCatalin MarinasENDPROC(__csum_ipv6_magic)
308478132aSRussell King
31