memcmp.S
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
- #include <asm/cprefix.h>
- .text
- .align 4
- .global C_LABEL(__memcmp), C_LABEL(memcmp)
- C_LABEL(__memcmp):
- C_LABEL(memcmp):
- #if 1
- cmp %o2, 0
- ble L3
- mov 0, %g3
- L5:
- ldub [%o0], %g2
- ldub [%o1], %g3
- sub %g2, %g3, %g2
- mov %g2, %g3
- sll %g2, 24, %g2
- cmp %g2, 0
- bne L3
- add %o0, 1, %o0
- add %o2, -1, %o2
- cmp %o2, 0
- bg L5
- add %o1, 1, %o1
- L3:
- sll %g3, 24, %o0
- sra %o0, 24, %o0
- retl
- nop
- #else
- save %sp, -104, %sp
- mov %i2, %o4
- mov %i0, %o0
- cmp %o4, 15
- ble L72
- mov %i1, %i2
- andcc %i2, 3, %g0
- be L161
- andcc %o0, 3, %g2
- L75:
- ldub [%o0], %g3
- ldub [%i2], %g2
- add %o0,1, %o0
- subcc %g3, %g2, %i0
- bne L156
- add %i2, 1, %i2
- andcc %i2, 3, %g0
- bne L75
- add %o4, -1, %o4
- andcc %o0, 3, %g2
- L161:
- bne,a L78
- mov %i2, %i1
- mov %o0, %i5
- mov %i2, %i3
- srl %o4, 2, %i4
- cmp %i4, 0
- bge L93
- mov %i4, %g2
- add %i4, 3, %g2
- L93:
- sra %g2, 2, %g2
- sll %g2, 2, %g2
- sub %i4, %g2, %g2
- cmp %g2, 1
- be,a L88
- add %o0, 4, %i5
- bg L94
- cmp %g2, 2
- cmp %g2, 0
- be,a L86
- ld [%o0], %g3
- b L162
- ld [%i5], %g3
- L94:
- be L81
- cmp %g2, 3
- be,a L83
- add %o0, -4, %i5
- b L162
- ld [%i5], %g3
- L81:
- add %o0, -8, %i5
- ld [%o0], %g3
- add %i2, -8, %i3
- ld [%i2], %g2
- b L82
- add %i4, 2, %i4
- L83:
- ld [%o0], %g4
- add %i2, -4, %i3
- ld [%i2], %g1
- b L84
- add %i4, 1, %i4
- L86:
- b L87
- ld [%i2], %g2
- L88:
- add %i2, 4, %i3
- ld [%o0], %g4
- add %i4, -1, %i4
- ld [%i2], %g1
- L95:
- ld [%i5], %g3
- L162:
- cmp %g4, %g1
- be L87
- ld [%i3], %g2
- cmp %g4, %g1
- L163:
- bleu L114
- mov -1, %i0
- b L114
- mov 1, %i0
- L87:
- ld [%i5 + 4], %g4
- cmp %g3, %g2
- bne L163
- ld [%i3 + 4], %g1
- L84:
- ld [%i5 + 8], %g3
- cmp %g4, %g1
- bne L163
- ld [%i3 + 8], %g2
- L82:
- ld [%i5 + 12], %g4
- cmp %g3, %g2
- bne L163
- ld [%i3 + 12], %g1
- add %i5, 16, %i5
- addcc %i4, -4, %i4
- bne L95
- add %i3, 16, %i3
- cmp %g4, %g1
- bne L163
- nop
- b L114
- mov 0, %i0
- L78:
- srl %o4, 2, %i0
- and %o0, -4, %i3
- orcc %i0, %g0, %g3
- sll %g2, 3, %o7
- mov 32, %g2
- bge L129
- sub %g2, %o7, %o1
- add %i0, 3, %g3
- L129:
- sra %g3, 2, %g2
- sll %g2, 2, %g2
- sub %i0, %g2, %g2
- cmp %g2, 1
- be,a L124
- ld [%i3], %o3
- bg L130
- cmp %g2, 2
- cmp %g2, 0
- be,a L122
- ld [%i3], %o2
- b L164
- sll %o3, %o7, %g3
- L130:
- be L117
- cmp %g2, 3
- be,a L119
- ld [%i3], %g1
- b L164
- sll %o3, %o7, %g3
- L117:
- ld [%i3], %g4
- add %i2, -8, %i1
- ld [%i3 + 4], %o3
- add %i0, 2, %i0
- ld [%i2], %i4
- b L118
- add %i3, -4, %i3
- L119:
- ld [%i3 + 4], %g4
- add %i2, -4, %i1
- ld [%i2], %i5
- b L120
- add %i0, 1, %i0
- L122:
- ld [%i3 + 4], %g1
- ld [%i2], %i4
- b L123
- add %i3, 4, %i3
- L124:
- add %i2, 4, %i1
- ld [%i3 + 4], %o2
- add %i0, -1, %i0
- ld [%i2], %i5
- add %i3, 8, %i3
- L131:
- sll %o3, %o7, %g3
- L164:
- srl %o2, %o1, %g2
- ld [%i3], %g1
- or %g3, %g2, %g3
- cmp %g3, %i5
- bne L163
- ld [%i1], %i4
- L123:
- sll %o2, %o7, %g3
- srl %g1, %o1, %g2
- ld [%i3 + 4], %g4
- or %g3, %g2, %g3
- cmp %g3, %i4
- bne L163
- ld [%i1 + 4], %i5
- L120:
- sll %g1, %o7, %g3
- srl %g4, %o1, %g2
- ld [%i3 + 8], %o3
- or %g3, %g2, %g3
- cmp %g3, %i5
- bne L163
- ld [%i1 + 8], %i4
- L118:
- sll %g4, %o7, %g3
- srl %o3, %o1, %g2
- ld [%i3 + 12], %o2
- or %g3, %g2, %g3
- cmp %g3, %i4
- bne L163
- ld [%i1 + 12], %i5
- add %i3, 16, %i3
- addcc %i0, -4, %i0
- bne L131
- add %i1, 16, %i1
- sll %o3, %o7, %g3
- srl %o2, %o1, %g2
- or %g3, %g2, %g3
- cmp %g3, %i5
- be,a L114
- mov 0, %i0
- b,a L163
- L114:
- cmp %i0, 0
- bne L156
- and %o4, -4, %g2
- add %o0, %g2, %o0
- add %i2, %g2, %i2
- and %o4, 3, %o4
- L72:
- cmp %o4, 0
- be L156
- mov 0, %i0
- ldub [%o0], %g3
- L165:
- ldub [%i2], %g2
- add %o0, 1, %o0
- subcc %g3, %g2, %i0
- bne L156
- add %i2, 1, %i2
- addcc %o4, -1, %o4
- bne,a L165
- ldub [%o0], %g3
- mov 0, %i0
- L156:
- ret
- restore
- #endif