xref: /OK3568_Linux_fs/kernel/arch/arm/lib/csumpartialcopy.S (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun *  linux/arch/arm/lib/csumpartialcopy.S
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun *  Copyright (C) 1995-1998 Russell King
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun#include <linux/linkage.h>
8*4882a593Smuzhiyun#include <asm/assembler.h>
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun		.text
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/* Function: __u32 csum_partial_copy_nocheck(const char *src, char *dst, int len)
13*4882a593Smuzhiyun * Params  : r0 = src, r1 = dst, r2 = len
14*4882a593Smuzhiyun * Returns : r0 = new checksum
15*4882a593Smuzhiyun */
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun		.macro	save_regs
18*4882a593Smuzhiyun		stmfd	sp!, {r1, r4 - r8, lr}
19*4882a593Smuzhiyun		.endm
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun		.macro	load_regs
22*4882a593Smuzhiyun		ldmfd	sp!, {r1, r4 - r8, pc}
23*4882a593Smuzhiyun		.endm
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun		.macro	load1b, reg1
26*4882a593Smuzhiyun		ldrb	\reg1, [r0], #1
27*4882a593Smuzhiyun		.endm
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		.macro	load2b, reg1, reg2
30*4882a593Smuzhiyun		ldrb	\reg1, [r0], #1
31*4882a593Smuzhiyun		ldrb	\reg2, [r0], #1
32*4882a593Smuzhiyun		.endm
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun		.macro	load1l, reg1
35*4882a593Smuzhiyun		ldr	\reg1, [r0], #4
36*4882a593Smuzhiyun		.endm
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun		.macro	load2l, reg1, reg2
39*4882a593Smuzhiyun		ldr	\reg1, [r0], #4
40*4882a593Smuzhiyun		ldr	\reg2, [r0], #4
41*4882a593Smuzhiyun		.endm
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		.macro	load4l, reg1, reg2, reg3, reg4
44*4882a593Smuzhiyun		ldmia	r0!, {\reg1, \reg2, \reg3, \reg4}
45*4882a593Smuzhiyun		.endm
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun#define FN_ENTRY	ENTRY(csum_partial_copy_nocheck)
48*4882a593Smuzhiyun#define FN_EXIT		ENDPROC(csum_partial_copy_nocheck)
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun#include "csumpartialcopygeneric.S"
51