Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *  linux/arch/arm/lib/csumpartialcopy.S
0004  *
0005  *  Copyright (C) 1995-1998 Russell King
0006  */
0007 #include <linux/linkage.h>
0008 #include <asm/assembler.h>
0009 
0010         .text
0011 
0012 /* Function: __u32 csum_partial_copy_nocheck(const char *src, char *dst, int len)
0013  * Params  : r0 = src, r1 = dst, r2 = len
0014  * Returns : r0 = new checksum
0015  */
0016 
0017         .macro  save_regs
0018         stmfd   sp!, {r1, r4 - r8, lr}
0019         .endm
0020 
0021         .macro  load_regs
0022         ldmfd   sp!, {r1, r4 - r8, pc}
0023         .endm
0024 
0025         .macro  load1b, reg1
0026         ldrb    \reg1, [r0], #1
0027         .endm
0028 
0029         .macro  load2b, reg1, reg2
0030         ldrb    \reg1, [r0], #1
0031         ldrb    \reg2, [r0], #1
0032         .endm
0033 
0034         .macro  load1l, reg1
0035         ldr \reg1, [r0], #4
0036         .endm
0037 
0038         .macro  load2l, reg1, reg2
0039         ldr \reg1, [r0], #4
0040         ldr \reg2, [r0], #4
0041         .endm
0042 
0043         .macro  load4l, reg1, reg2, reg3, reg4
0044         ldmia   r0!, {\reg1, \reg2, \reg3, \reg4}
0045         .endm
0046 
0047 #define FN_ENTRY    ENTRY(csum_partial_copy_nocheck)
0048 #define FN_EXIT     ENDPROC(csum_partial_copy_nocheck)
0049 
0050 #include "csumpartialcopygeneric.S"