git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
arm
/
lib
/
csumpartialcopygeneric.S
diff --git
a/arch/arm/lib/csumpartialcopygeneric.S
b/arch/arm/lib/csumpartialcopygeneric.S
index
d3a2f46
..
c50e8f5
100644
(file)
--- a/
arch/arm/lib/csumpartialcopygeneric.S
+++ b/
arch/arm/lib/csumpartialcopygeneric.S
@@
-22,8
+22,8
@@
dst .req r1
len .req r2
sum .req r3
len .req r2
sum .req r3
-.
zero:
mov r0, sum
- load_regs
ea
+.
Lzero:
mov r0, sum
+ load_regs
/*
* Align an unaligned destination pointer. We know that
/*
* Align an unaligned destination pointer. We know that
@@
-31,8
+31,9
@@
sum .req r3
* the length. Note that the source pointer hasn't been
* aligned yet.
*/
* the length. Note that the source pointer hasn't been
* aligned yet.
*/
-.dst_unaligned: tst dst, #1
- beq .dst_16bit
+.Ldst_unaligned:
+ tst dst, #1
+ beq .Ldst_16bit
load1b ip
sub len, len, #1
load1b ip
sub len, len, #1
@@
-41,7
+42,7
@@
sum .req r3
tst dst, #2
moveq pc, lr @ dst is now 32bit aligned
tst dst, #2
moveq pc, lr @ dst is now 32bit aligned
-.
dst_16bit:
load2b r8, ip
+.
Ldst_16bit:
load2b r8, ip
sub len, len, #2
adcs sum, sum, r8, put_byte_0
strb r8, [dst], #1
sub len, len, #2
adcs sum, sum, r8, put_byte_0
strb r8, [dst], #1
@@
-53,12
+54,12
@@
sum .req r3
* Handle 0 to 7 bytes, with any alignment of source and
* destination pointers. Note that when we get here, C = 0
*/
* Handle 0 to 7 bytes, with any alignment of source and
* destination pointers. Note that when we get here, C = 0
*/
-.
less8:
teq len, #0 @ check for zero count
- beq .zero
+.
Lless8:
teq len, #0 @ check for zero count
+ beq .
L
zero
/* we must have at least one byte. */
tst dst, #1 @ dst 16-bit aligned
/* we must have at least one byte. */
tst dst, #1 @ dst 16-bit aligned
- beq .less8_aligned
+ beq .
L
less8_aligned
/* Align dst */
load1b ip
/* Align dst */
load1b ip
@@
-66,7
+67,7
@@
sum .req r3
adcs sum, sum, ip, put_byte_1 @ update checksum
strb ip, [dst], #1
tst len, #6
adcs sum, sum, ip, put_byte_1 @ update checksum
strb ip, [dst], #1
tst len, #6
- beq .less8_byteonly
+ beq .
L
less8_byteonly
1: load2b r8, ip
sub len, len, #2
1: load2b r8, ip
sub len, len, #2
@@
-74,27
+75,26
@@
sum .req r3
strb r8, [dst], #1
adcs sum, sum, ip, put_byte_1
strb ip, [dst], #1
strb r8, [dst], #1
adcs sum, sum, ip, put_byte_1
strb ip, [dst], #1
-.less8_aligned: tst len, #6
+.Lless8_aligned:
+ tst len, #6
bne 1b
bne 1b
-.less8_byteonly:
+.
L
less8_byteonly:
tst len, #1
tst len, #1
- beq .done
+ beq .
L
done
load1b r8
adcs sum, sum, r8, put_byte_0 @ update checksum
strb r8, [dst], #1
load1b r8
adcs sum, sum, r8, put_byte_0 @ update checksum
strb r8, [dst], #1
- b .done
+ b .
L
done
FN_ENTRY
FN_ENTRY
- mov ip, sp
save_regs
save_regs
- sub fp, ip, #4
cmp len, #8 @ Ensure that we have at least
cmp len, #8 @ Ensure that we have at least
- blo .
less8
@ 8 bytes to copy.
+ blo .
Lless8
@ 8 bytes to copy.
adds sum, sum, #0 @ C = 0
tst dst, #3 @ Test destination alignment
adds sum, sum, #0 @ C = 0
tst dst, #3 @ Test destination alignment
- blne .
dst_unaligned
@ align destination, return here
+ blne .
Ldst_unaligned
@ align destination, return here
/*
* Ok, the dst pointer is now 32bit aligned, and we know
/*
* Ok, the dst pointer is now 32bit aligned, and we know
@@
-103,7
+103,7
@@
FN_ENTRY
*/
tst src, #3 @ Test source alignment
*/
tst src, #3 @ Test source alignment
- bne .src_not_aligned
+ bne .
L
src_not_aligned
/* Routine for src & dst aligned */
/* Routine for src & dst aligned */
@@
-136,17
+136,17
@@
FN_ENTRY
adcs sum, sum, r4
4: ands len, len, #3
adcs sum, sum, r4
4: ands len, len, #3
- beq .done
+ beq .
L
done
load1l r4
tst len, #2
mov r5, r4, get_byte_0
load1l r4
tst len, #2
mov r5, r4, get_byte_0
- beq .exit
+ beq .
L
exit
adcs sum, sum, r4, push #16
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
mov r5, r4, get_byte_2
adcs sum, sum, r4, push #16
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
mov r5, r4, get_byte_2
-.
exit:
tst len, #1
+.
Lexit:
tst len, #1
strneb r5, [dst], #1
andne r5, r5, #255
adcnes sum, sum, r5, put_byte_0
strneb r5, [dst], #1
andne r5, r5, #255
adcnes sum, sum, r5, put_byte_0
@@
-157,20
+157,20
@@
FN_ENTRY
* the inefficient byte manipulations in the
* architecture independent code.
*/
* the inefficient byte manipulations in the
* architecture independent code.
*/
-.
done:
adc r0, sum, #0
+.
Ldone:
adc r0, sum, #0
ldr sum, [sp, #0] @ dst
tst sum, #1
movne r0, r0, ror #8
ldr sum, [sp, #0] @ dst
tst sum, #1
movne r0, r0, ror #8
- load_regs
ea
+ load_regs
-.src_not_aligned:
+.
L
src_not_aligned:
adc sum, sum, #0 @ include C from dst alignment
and ip, src, #3
bic src, src, #3
load1l r5
cmp ip, #2
adc sum, sum, #0 @ include C from dst alignment
and ip, src, #3
bic src, src, #3
load1l r5
cmp ip, #2
- beq .src2_aligned
- bhi .src3_aligned
+ beq .
L
src2_aligned
+ bhi .
L
src3_aligned
mov r4, r5, pull #8 @ C = 0
bics ip, len, #15
beq 2f
mov r4, r5, pull #8 @ C = 0
bics ip, len, #15
beq 2f
@@
-211,18
+211,18
@@
FN_ENTRY
adcs sum, sum, r4
mov r4, r5, pull #8
4: ands len, len, #3
adcs sum, sum, r4
mov r4, r5, pull #8
4: ands len, len, #3
- beq .done
+ beq .
L
done
mov r5, r4, get_byte_0
tst len, #2
mov r5, r4, get_byte_0
tst len, #2
- beq .exit
+ beq .
L
exit
adcs sum, sum, r4, push #16
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
mov r5, r4, get_byte_2
adcs sum, sum, r4, push #16
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
mov r5, r4, get_byte_2
- b .exit
+ b .
L
exit
-.
src2_aligned:
mov r4, r5, pull #16
+.
Lsrc2_aligned:
mov r4, r5, pull #16
adds sum, sum, #0
bics ip, len, #15
beq 2f
adds sum, sum, #0
bics ip, len, #15
beq 2f
@@
-263,20
+263,20
@@
FN_ENTRY
adcs sum, sum, r4
mov r4, r5, pull #16
4: ands len, len, #3
adcs sum, sum, r4
mov r4, r5, pull #16
4: ands len, len, #3
- beq .done
+ beq .
L
done
mov r5, r4, get_byte_0
tst len, #2
mov r5, r4, get_byte_0
tst len, #2
- beq .exit
+ beq .
L
exit
adcs sum, sum, r4
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
tst len, #1
adcs sum, sum, r4
strb r5, [dst], #1
mov r5, r4, get_byte_1
strb r5, [dst], #1
tst len, #1
- beq .done
+ beq .
L
done
load1b r5
load1b r5
- b .exit
+ b .
L
exit
-.
src3_aligned:
mov r4, r5, pull #24
+.
Lsrc3_aligned:
mov r4, r5, pull #24
adds sum, sum, #0
bics ip, len, #15
beq 2f
adds sum, sum, #0
bics ip, len, #15
beq 2f
@@
-317,10
+317,10
@@
FN_ENTRY
adcs sum, sum, r4
mov r4, r5, pull #24
4: ands len, len, #3
adcs sum, sum, r4
mov r4, r5, pull #24
4: ands len, len, #3
- beq .done
+ beq .
L
done
mov r5, r4, get_byte_0
tst len, #2
mov r5, r4, get_byte_0
tst len, #2
- beq .exit
+ beq .
L
exit
strb r5, [dst], #1
adcs sum, sum, r4
load1l r4
strb r5, [dst], #1
adcs sum, sum, r4
load1l r4
@@
-328,4
+328,4
@@
FN_ENTRY
strb r5, [dst], #1
adcs sum, sum, r4, push #24
mov r5, r4, get_byte_1
strb r5, [dst], #1
adcs sum, sum, r4, push #24
mov r5, r4, get_byte_1
- b .exit
+ b .
L
exit