0001
0002
0003
0004
0005
0006
0007 #include <linux/linkage.h>
0008 #include <asm/assembler.h>
0009
0010 .text
0011
0012
0013
0014
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"