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: ...@@ -458,74 +458,87 @@ csum_partial:
* not fix it up. * not fix it up.
*/ */
csump_really_slow: csump_really_slow:
mov %o0, %o3
mov %o1, %o4
cmp %o1, 0 cmp %o1, 0
ble,pn %icc, 9f ble,pn %icc, 9f
mov 0, %o3 mov 0, %o0
andcc %o0, 1, %o4 andcc %o3, 1, %o5
be,pt %icc, 1f be,pt %icc, 1f
sra %o1, 1, %g3 sra %o4, 1, %g3
add %o1, -1, %o1 add %o1, -1, %o4
ldub [%o0], %g1 ldub [%o3], %o0
add %o0, 1, %o0 add %o3, 1, %o3
sll %g1, 8, %o3 sra %o4, 1, %g3
sra %o1, 1, %g3
1: 1:
cmp %g3, 0 cmp %g3, 0
be,pt %icc, 3f be,pt %icc, 3f
and %o1, 1, %g5 and %o4, 1, %g2
and %o0, 2, %g1 and %o3, 2, %g2
brz,a,pt %g1, 1f brz,a,pt %g2, 1f
sra %g3, 1, %g3 sra %g3, 1, %g3
add %g3, -1, %g3 add %g3, -1, %g3
add %o1, -2, %o1 add %o4, -2, %o4
lduh [%o0], %g5 lduh [%o3], %g2
add %o0, 2, %o0 add %o3, 2, %o3
add %o3, %g5, %o3 add %o0, %g2, %o0
sra %g3, 1, %g3 sra %g3, 1, %g3
1: 1:
cmp %g3, 0 cmp %g3, 0
be,a,pt %icc, 2f be,pt %icc, 2f
and %o1, 2, %g3 and %o4, 2, %g2
1: 1:
ld [%o0], %g7 ld [%o3], %g2
addcc %o3, %g7, %o3 addcc %o0, %g2, %o0
addx %o3, %g0, %o3 addx %o0, %g0, %o0
addcc %g3, -1, %g3 addcc %g3, -1, %g3
bne,pt %icc, 1b bne,pt %icc, 1b
add %o0, 4, %o0 add %o3, 4, %o3
and %o1, 2, %g3 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: 2:
cmp %g3, 0 cmp %g2, 0
be,pt %icc, 3f be,pt %icc, 3f
and %o1, 1, %g5 and %o4, 1, %g2
lduh [%o0], %g1 lduh [%o3], %g2
add %o0, 2, %o0 add %o3, 2, %o3
add %o3, %g1, %o3 add %o0, %g2, %o0
and %o4, 1, %g2
3: 3:
cmp %g5, 0 cmp %g2, 0
be,pt %icc, 1f be,pt %icc, 1f
srl %o3, 16, %g3 srl %o0, 16, %o1
ldub [%o0], %o1 ldub [%o3], %g2
add %o3, %o1, %o3 sll %g2, 8, %g2
srl %o3, 16, %g3 add %o0, %g2, %o0
srl %o0, 16, %o1
1: 1:
sethi %hi(64512), %o1 sethi %hi(64512), %g2
or %o1, 1023, %o0 or %g2, 1023, %g2
cmp %o4, 0 cmp %o5, 0
and %o3, %o0, %g7 and %o0, %g2, %g3
add %g7, %g3, %o4 add %g3, %o1, %g3
srl %o4, 16, %g1 srl %g3, 16, %o0
and %o4, %o0, %g5 and %g3, %g2, %g2
add %g5, %g1, %o3 add %g2, %o0, %g3
sll %o3, 16, %g2 sll %g3, 16, %g3
srl %g2, 16, %o3 srl %g3, 16, %o0
srl %g2, 24, %o4 srl %g3, 24, %g3
and %o3, 255, %g7 and %o0, 255, %g2
sll %g7, 8, %o0 sll %g2, 8, %g2
bne,pt %icc, 1f bne,pt %icc, 1f
or %o4, %o0, %g2 or %g3, %g2, %g2
9: 9:
mov %o3, %g2 mov %o0, %g2
1: 1:
addcc %g2, %o2, %g2 addcc %g2, %o2, %g2
addx %g2, %g0, %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