| .text | |
| .align 4 | |
| .global __memcmp, memcmp | |
| __memcmp: | |
| 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 |