Commit 17f90f08 authored by David S. Miller's avatar David S. Miller

arch/sparc64/lib/VIScsum.S: Fix endianness bugs in previous change.

parent e10b134a
......@@ -458,74 +458,87 @@ csum_partial:
* not fix it up.
*/
csump_really_slow:
mov %o0, %o3
mov %o1, %o4
cmp %o1, 0
ble,pn %icc, 9f
mov 0, %o3
andcc %o0, 1, %o4
mov 0, %o0
andcc %o3, 1, %o5
be,pt %icc, 1f
sra %o1, 1, %g3
add %o1, -1, %o1
ldub [%o0], %g1
add %o0, 1, %o0
sll %g1, 8, %o3
sra %o1, 1, %g3
sra %o4, 1, %g3
add %o1, -1, %o4
ldub [%o3], %o0
add %o3, 1, %o3
sra %o4, 1, %g3
1:
cmp %g3, 0
be,pt %icc, 3f
and %o1, 1, %g5
and %o0, 2, %g1
brz,a,pt %g1, 1f
and %o4, 1, %g2
and %o3, 2, %g2
brz,a,pt %g2, 1f
sra %g3, 1, %g3
add %g3, -1, %g3
add %o1, -2, %o1
lduh [%o0], %g5
add %o0, 2, %o0
add %o3, %g5, %o3
add %o4, -2, %o4
lduh [%o3], %g2
add %o3, 2, %o3
add %o0, %g2, %o0
sra %g3, 1, %g3
1:
cmp %g3, 0
be,a,pt %icc, 2f
and %o1, 2, %g3
be,pt %icc, 2f
and %o4, 2, %g2
1:
ld [%o0], %g7
addcc %o3, %g7, %o3
addx %o3, %g0, %o3
ld [%o3], %g2
addcc %o0, %g2, %o0
addx %o0, %g0, %o0
addcc %g3, -1, %g3
bne,pt %icc, 1b
add %o0, 4, %o0
and %o1, 2, %g3
add %o3, 4, %o3
srl %o0, 16, %o1
sethi %hi(64512), %g2
or %g2, 1023, %g2
and %o0, %g2, %g3
add %g3, %o1, %g3
srl %g3, 16, %o0
and %g3, %g2, %g2
add %g2, %o0, %g3
sll %g3, 16, %g3
srl %g3, 16, %o0
and %o4, 2, %g2
2:
cmp %g3, 0
cmp %g2, 0
be,pt %icc, 3f
and %o1, 1, %g5
lduh [%o0], %g1
add %o0, 2, %o0
add %o3, %g1, %o3
and %o4, 1, %g2
lduh [%o3], %g2
add %o3, 2, %o3
add %o0, %g2, %o0
and %o4, 1, %g2
3:
cmp %g5, 0
cmp %g2, 0
be,pt %icc, 1f
srl %o3, 16, %g3
ldub [%o0], %o1
add %o3, %o1, %o3
srl %o3, 16, %g3
srl %o0, 16, %o1
ldub [%o3], %g2
sll %g2, 8, %g2
add %o0, %g2, %o0
srl %o0, 16, %o1
1:
sethi %hi(64512), %o1
or %o1, 1023, %o0
cmp %o4, 0
and %o3, %o0, %g7
add %g7, %g3, %o4
srl %o4, 16, %g1
and %o4, %o0, %g5
add %g5, %g1, %o3
sll %o3, 16, %g2
srl %g2, 16, %o3
srl %g2, 24, %o4
and %o3, 255, %g7
sll %g7, 8, %o0
sethi %hi(64512), %g2
or %g2, 1023, %g2
cmp %o5, 0
and %o0, %g2, %g3
add %g3, %o1, %g3
srl %g3, 16, %o0
and %g3, %g2, %g2
add %g2, %o0, %g3
sll %g3, 16, %g3
srl %g3, 16, %o0
srl %g3, 24, %g3
and %o0, 255, %g2
sll %g2, 8, %g2
bne,pt %icc, 1f
or %o4, %o0, %g2
or %g3, %g2, %g2
9:
mov %o3, %g2
mov %o0, %g2
1:
addcc %g2, %o2, %g2
addx %g2, %g0, %g2
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment