/* SPDX-License-Identifier: GPL-2.0-only */1/*2* linux/arch/arm/lib/csumpartialcopy.S3*4* Copyright (C) 1995-1998 Russell King5*/6#include <linux/linkage.h>7#include <asm/assembler.h>89.text1011/* Function: __u32 csum_partial_copy_nocheck(const char *src, char *dst, int len)12* Params : r0 = src, r1 = dst, r2 = len13* Returns : r0 = new checksum14*/1516.macro save_regs17stmfd sp!, {r1, r4 - r8, lr}18.endm1920.macro load_regs21ldmfd sp!, {r1, r4 - r8, pc}22.endm2324.macro load1b, reg125ldrb \reg1, [r0], #126.endm2728.macro load2b, reg1, reg229ldrb \reg1, [r0], #130ldrb \reg2, [r0], #131.endm3233.macro load1l, reg134ldr \reg1, [r0], #435.endm3637.macro load2l, reg1, reg238ldr \reg1, [r0], #439ldr \reg2, [r0], #440.endm4142.macro load4l, reg1, reg2, reg3, reg443ldmia r0!, {\reg1, \reg2, \reg3, \reg4}44.endm4546#define FN_ENTRY ENTRY(csum_partial_copy_nocheck)47#define FN_EXIT ENDPROC(csum_partial_copy_nocheck)4849#include "csumpartialcopygeneric.S"505152