/titanic_50/usr/src/lib/libbc/libc/crt/sparc/ |
H A D | misalign.s | 89 lduh [%i0],%o0 ! short aligned case: 2 loads, 2 stores 91 ldub [%i0],%o0 ! byte aligned case: 4 loads, 4 stores 101 lduh [%i0+2],%o1 ! rest of short aligned case 122 be,a 1f ! long aligned case: 2 loads, no stores 126 be,a 2f ! short aligned case: 4 loads, 4 stores 149 lduh [%i0+2],%o1 ! rest of short aligned case 160 ld [%i0+4],%f1 ! rest of long aligned case 181 srl %o0,24,%o5 ! byte aligned case 190 sth %o4,[%o1] ! rest of short aligned case 209 be,a 1f ! short aligned case [all …]
|
/titanic_50/usr/src/lib/libc/capabilities/sun4v/common/ |
H A D | memset.s | 93 andcc %o5, 7, %o3 ! is sp1 aligned on a 8 byte bound 94 bz,pt %ncc, .blkalign ! already double aligned 95 sub %o3, 8, %o3 ! -(bytes till double aligned) 98 ! Set -(%o3) bytes till sp1 double aligned 104 ! Now sp1 is double aligned (sp1 is found in %o5) 112 andcc %o5, 63, %o3 ! is sp1 block aligned? 113 bz,pt %ncc, .blkwr ! now block aligned 114 sub %o3, 64, %o3 ! o3 is -(bytes till block aligned) 117 ! Store -(%o3) bytes till dst is block (64 byte) aligned. 119 ! Recall that dst is already double word aligned [all …]
|
H A D | memcpy.s | 225 andcc %g1, 7, %o3 ! %o3 has bytes till dst 8 bytes aligned 226 bz,a,pn %ncc, .dbbck ! if dst is not 8 byte aligned: align it 238 ! Now Destination is 8 byte aligned 241 bz,a,pn %ncc, .dbcopybc ! if src is aligned to fast mem move 292 ! Check to see if memmove is large aligned copy 301 andcc %o5, 7, %o5 ! bytes till DST 8 byte aligned 339 andcc %o0, 0x3f, %o3 ! %o3 == 0 means dst is 64 byte aligned 780 bz,pt %ncc, .smallword ! branch to word aligned case 783 andcc %o1, 0x3, %o5 ! is src word aligned 785 cmp %o5, 2 ! is src half-word aligned [all …]
|
/titanic_50/usr/src/lib/libc/sparcv9/crt/ |
H A D | __align_cpy_4.s | 64 and %o0, 7, %o3 ! Is target 8-byte aligned? 65 and %o1, 7, %o4 ! Is source 8-byte aligned? 68 mov %o0, %g1 ! 8-byte aligned. 69 brz,pt %o3, .both8 ! Both are 8-byte aligned. 72 ld [%o1], %o3 ! Neither is aligned, so do 4 bytes; 73 subcc %o2, 4, %o2 ! then both will be aligned. 81 ! aligned. Get and store 16 bytes at a time using ldx and stx. 84 .both8: ! Both source and target are aligned. 129 ! aligned. So, use ld and st instructions rather than trying to copy stuff
|
H A D | __align_cpy_2.s | 47 andcc %o1, 6, %o5 ! is src 8-byte aligned 49 cmp %o5, 4 ! is src 4-byte aligned 51 cmp %o5, 6 ! src is 2-byte aligned 61 .s2algn:lduw [%o1], %o3 ! know src is 4-byte aligned
|
/titanic_50/usr/src/lib/libc/sparcv9/gen/ |
H A D | memset.s | 93 .dalign: ! Set bytes until 8-byte aligned 94 btst 7, %o5 ! 8-byte aligned? 100 b .dalign ! go see if aligned yet 105 stx %o1, [%o5] ! write aligned 8 bytes 113 .walign: ! Set bytes until 4-byte aligned
|
H A D | strcmp.s | 53 ! This strcmp implementation first determines whether s1 is aligned. 57 ! a different compare for non-aligned strings is used. 66 andcc %o0, 7, %o3 ! s1 sword-aligned ? 70 sub %o3, 8, %o3 ! number of bytes till s1 aligned 79 inccc %o3 ! s1 aligned yet? 84 andcc %o1, 7, %o3 ! s2 dword aligned ? 90 and %o1, -8, %o1 ! round s1 down to next aligned dword 105 ldx [%o1+8], %o0 ! next aligned word in s2 107 srlx %o0, %g4, %o3 ! bytes from aligned word from s2
|
H A D | strlen.s | 52 ! null byte. To this end, we attempt to get our string aligned 63 andcc %o0, 3, %o4 ! is src word aligned 67 cmp %o4, 2 ! is src half-word aligned 74 cmp %o4, 3 ! src is byte aligned 108 .loop: ! this should be aligned to 32
|
H A D | strcpy.s | 55 ! quantities until the source ptr is aligned at an extended 65 andcc %o1, 7, %o4 ! dword aligned ? 126 cmp %g4, 2 ! dst halfword aligned ? 128 andcc %o2, 7, %g0 ! dst word aligned ? 182 nop ! ensure following loop 16-byte aligned 191 srlx %o1, 56, %g1 ! %g1<7:0> = first byte; word aligned now 200 nop ! ensure following loop 16-byte aligned 201 nop ! ensure following loop 16-byte aligned 210 srlx %o1, 56, %g1 ! %g1<7:0> = first byte; word aligned now 219 nop ! ensure following loop 16-byte aligned [all …]
|
H A D | ascii_strcasecmp.s | 118 ! both strings a byte at a time until the source ptr is aligned to 130 andcc %i0, 3, %i3 ! s1 word-aligned ? 172 cmp %i3, 2 ! s1 aligned now? 194 ba .s1aligned4 ! s1 aligned now 195 andcc %i1, 3, %i3 ! s2 word-aligned ? 207 andcc %i1, 3, %i3 ! s2 word aligned ? 212 bz .word4 ! yup, s2 word-aligned 228 ! word aligned, if it is, we use word4 & cmp4 234 bz,a,pt %ncc, .doload ! null byte in previous aligned s2 word 235 lduw [%i1 + 4], %i0 ! load next aligned word from s2 [all …]
|
H A D | memcmp.s | 63 andcc %o0, 3, %o3 ! is s1 aligned? 65 andcc %o1, 3, %o4 ! is s2 aligned? 96 andcc %o1, 3, %o4 ! delay slot, is s2 aligned? 142 .iss2: andn %o2, 3, %o3 ! count of aligned bytes 144 bz,pn %icc, .w4cmp ! if s2 word aligned, compare words 146 be,pn %icc, .w2cmp ! s2 half aligned 154 be,pt %icc, .w1cmp ! aligned to 1 or 3 bytes
|
H A D | memcpy.s | 64 andcc %o1, 3, %o5 ! is src word aligned 66 cmp %o5, 2 ! is src half-word aligned 68 cmp %o5, 3 ! src is byte aligned
|
H A D | strncpy.s | 61 ! performing small copies until it is aligned. Then, the string 72 andcc %o1, 7, %o4 ! dword aligned ? 75 sub %o4, 8, %o4 ! bytes until src aligned 85 addcc %o4, 1, %o4 ! src aligned now? 103 cmp %g1, 2 ! dst halfword aligned ? 105 andcc %g5, 7, %g0 ! dst word aligned ? 107 nop ! ensure loop is 16-byte aligned 157 bz,pn %ncc, .fillaligned ! dst already dword aligned 278 srlx %o1, 56, %g1 ! %g1<7:0> = first byte; word aligned now 296 srlx %o1, 56, %g1 ! %g1<7:0> = first byte; half-word aligned now [all …]
|
/titanic_50/usr/src/lib/libc/i386/gen/ |
H A D | strcat.s | 63 testl $3, %edi / if %edi not word aligned 81 testl $3, %edi / if %edi not word aligned 83 jmp .L2 / goto .L2 (%edi word aligned) 88 testl $3, %eax / if %eax not word aligned 114 testl $3, %eax / if %eax not word aligned 116 jmp .L5 / goto .L5 (%eax word aligned)
|
/titanic_50/usr/src/lib/libc/amd64/gen/ |
H A D | strcat.s | 67 testq $7, %rdi / if %rdi not quadword aligned 85 testq $7, %rdi / if %rdi not quadword aligned 87 jmp .L2 / goto .L2 (%rdi quadword aligned) 91 testq $7, %rsi / if %rsi not quadword aligned 117 testq $7, %rsi / if %rsi not word aligned 119 jmp .L5 / goto .L5 (%rsi word aligned)
|
/titanic_50/usr/src/lib/libc/sparc/gen/ |
H A D | strlen.s | 52 ! null byte. To this end, we attempt to get our string aligned 63 andcc %o0, 3, %o4 ! is src word aligned 67 cmp %o4, 2 ! is src half-word aligned 74 cmp %o4, 3 ! src is byte aligned 108 .loop: ! this should be aligned to 32
|
H A D | ascii_strcasecmp.s | 118 ! both strings a byte at a time until the source ptr is aligned to 130 andcc %i0, 3, %i3 ! s1 word-aligned ? 172 cmp %i3, 2 ! s1 aligned now? 194 ba .s1aligned4 ! s1 aligned now 195 andcc %i1, 3, %i3 ! s2 word-aligned ? 207 andcc %i1, 3, %i3 ! s2 word aligned ? 212 bz .word4 ! yup, s2 word-aligned 228 ! word aligned, if it is, we use word4 & cmp4 234 bz,a .doload ! null byte in previous aligned s2 word 235 lduw [%i1 + 4], %i0 ! load next aligned word from s2 [all …]
|
H A D | memcmp.s | 64 andcc %o0, 3, %o3 ! is s1 aligned? 66 andcc %o1, 3, %o4 ! is s2 aligned? 97 andcc %o1, 3, %o4 ! delay slot, is s2 aligned? 145 .iss2: andn %o2, 3, %o3 ! count of aligned bytes 147 bz .w4cmp ! if s2 word aligned, compare words 149 be .w2cmp ! s2 half aligned 157 be .w1cmp ! aligned to 1 or 3 bytes
|
H A D | strcmp.s | 53 ! This strcmp implementation first determines whether s1 is aligned. 57 ! a different compare for non-aligned strings is used. 59 ! degree to which a string is mis-aligned.
|
H A D | memcpy.s | 60 andcc %o1, 3, %o5 ! is src word aligned 62 cmp %o5, 2 ! is src half-word aligned 64 cmp %o5, 3 ! src is byte aligned
|
H A D | strcpy.s | 55 ! if it is not aligned, attempts to copy bytes until it is. 66 andcc %o1, 3, %o4 ! src word aligned ? 70 cmp %o4, 2 ! src halfword aligned 95 andcc %o2, 3, %o1 ! destination word aligned? 132 cmp %o1, 2 ! dst half word aligned? 144 stb %g1, [%o2 - 4] ! store first byte; half-word aligned now
|
H A D | memmove.s | 53 andcc %i1, 3, %i5 ! is src word aligned 55 cmp %i5, 2 ! is src half-word aligned 57 cmp %i5, 3 ! src is byte aligned
|
/titanic_50/usr/src/uts/sun4v/cpu/ |
H A D | generic_copy.s | 130 ! use aligned transfers where possible 142 ! use aligned reads and writes where possible 154 ! l4 number of bytes leftover after aligned transfers complete 159 btst 3, %i1 ! is destnation address aligned? 170 btst 3, %i0 ! is source aligned? 187 btst 3, %i1 ! is destination aligned? 202 andn %i2, 3, %i2 ! # of aligned bytes that can be moved 221 ! the source address is aligned and destination is not 232 btst 3, %i1 ! is destination aligned? 240 andn %i2, 3, %i2 ! # of aligned bytes that can be moved [all …]
|
H A D | niagara_copy.s | 628 andcc %o1, 0x7, %o3 ! is dest long aligned 630 andcc %o1, 1, %o3 ! is dest byte aligned 632 ! Destination is long word aligned 734 .bc_al_d1f: ! dest is now half word aligned 737 .bc_al_d2f: ! dest is now word aligned 738 andcc %o1, 4, %o3 ! is dest longword aligned? 741 .bc_al_d4: ! dest is word aligned; src is unknown 759 ! dst is 8-byte aligned, src is not 786 andcc %o1, 4, %o3 ! is dest longword aligned? 1168 andcc %i1, 1, %o3 ! is dest byte aligned [all …]
|
/titanic_50/usr/src/lib/libc/capabilities/sun4u/common/ |
H A D | memcmp.s | 69 and %o0, 7, %o4 ! is s1 aligned on a 8 byte bound 89 bgu,a %ncc, .blkchk ! we should already be dbl aligned 170 bz,pn %ncc, .blalign ! now block aligned 172 neg %i3 ! bytes till block aligned 174 ! Compare %i3 bytes till dst is block (64 byte) aligned. use
|