/*1* linux/arch/arm/lib/csumpartialcopy.S2*3* Copyright (C) 1995-1998 Russell King4*5* This program is free software; you can redistribute it and/or modify6* it under the terms of the GNU General Public License version 2 as7* published by the Free Software Foundation.8*/9#include <linux/linkage.h>10#include <asm/assembler.h>1112.text1314/* Function: __u32 csum_partial_copy_nocheck(const char *src, char *dst, int len, __u32 sum)15* Params : r0 = src, r1 = dst, r2 = len, r3 = checksum16* Returns : r0 = new checksum17*/1819.macro save_regs20stmfd sp!, {r1, r4 - r8, lr}21.endm2223.macro load_regs24ldmfd sp!, {r1, r4 - r8, pc}25.endm2627.macro load1b, reg128ldrb \reg1, [r0], #129.endm3031.macro load2b, reg1, reg232ldrb \reg1, [r0], #133ldrb \reg2, [r0], #134.endm3536.macro load1l, reg137ldr \reg1, [r0], #438.endm3940.macro load2l, reg1, reg241ldr \reg1, [r0], #442ldr \reg2, [r0], #443.endm4445.macro load4l, reg1, reg2, reg3, reg446ldmia r0!, {\reg1, \reg2, \reg3, \reg4}47.endm4849#define FN_ENTRY ENTRY(csum_partial_copy_nocheck)50#define FN_EXIT ENDPROC(csum_partial_copy_nocheck)5152#include "csumpartialcopygeneric.S"535455