/titanic_44/usr/src/lib/libc/capabilities/sun4v/common/ |
H A D | memset.s | 79 and %o1, 0xff, %o1 ! o1 is (char)c 81 sll %o1, 8, %o3 82 or %o1, %o3, %o1 ! now o1 has 2 bytes of c 83 sll %o1, 16, %o3 87 or %o1, %o3, %o1 ! now o1 has 4 bytes of c 89 sllx %o1, 32, %o3 90 or %o1, %o3, %o1 ! now o1 has 8 bytes of c 99 1: stb %o1, [%o5] ! there is at least 1 byte to set 121 stx %o1, [%o5] 135 stxa %o1, [%o5+0x0]%asi [all …]
|
H A D | memcpy.s | 208 cmp %o1, %o0 ! if from address is >= to use forward copy 210 sub %o0, %o1, %o4 ! get difference of two addresses 213 add %o1, %o2, %o5 ! get to end of source space 251 ldx [%o5], %o1 ! load first 8 bytes 252 srlx %o1, %g5, %o1 256 or %o1, %o3, %o3 ! align data 260 srlx %o0, %g5, %o1 ! move extra byte for the next use 306 sub %o1, %o0, %o1 ! %o1 gets the difference 308 ldub [%o1+%o0], %o4 ! load one byte 313 add %o1, %o0, %o1 ! restore %o1 [all …]
|
/titanic_44/usr/src/lib/libc/sparc/crt/ |
H A D | hwmuldiv.s | 36 smul %o0, %o1, %o0 37 rd %y, %o1 40 cmp %o1, %o2 ! return with Z set if %y == (%o0 >> 31) 44 umul %o0, %o1, %o0 45 rd %y, %o1 47 tst %o1 ! return with Z set if high order bits are zero 56 sdivcc %o0, %o1, %o0 68 udiv %o0, %o1, %o0 77 sdivcc %o0, %o1, %o2 80 1: smul %o2, %o1, %o2 [all …]
|
/titanic_44/usr/src/cmd/sgs/rtld.4.x/ |
H A D | umultiply.s | 78 mulscc %o4, %o1, %o4 ! first iteration of 9 82 mulscc %o4, %o1, %o4 ! first iteration of 13 86 mulscc %o4, %o1, %o4 ! first iteration of 17 93 mulscc %o4, %o1, %o4 ! first iteration of 33 94 mulscc %o4, %o1, %o4 95 mulscc %o4, %o1, %o4 96 mulscc %o4, %o1, %o4 97 mulscc %o4, %o1, %o4 98 mulscc %o4, %o1, %o4 99 mulscc %o4, %o1, %o4 [all …]
|
/titanic_44/usr/src/uts/sparc/v9/ml/ |
H A D | crt.s | 62 and %o1, MASK, %o4 71 subcc %o1, 4, %o1 72 ld [%o0 + %o1], %o4 74 st %o4, [%i0 + %o1] ! delay slot 87 and %o1, MASK, %o4 96 subcc %o1, 2, %o1 97 lduh [%o0 + %o1], %o4 99 sth %o4, [%i0 + %o1] ! delay slot 110 srl %o1, 0, %o1; \ 113 or %o0, %o1, %o1; \ [all …]
|
/titanic_44/usr/src/uts/sun4u/opl/ml/ |
H A D | drmach_asm.s | 89 sub %o1, 8, %o1 90 brnz %o1, 0b 94 mov ASI_L2_CTRL_RW_ADDR, %o1 95 ldxa [%o1]ASI_L2_CTRL, %o3 100 stxa %o4, [%o1]ASI_L2_CTRL 139 set 1, %o1 140 sllx %o1, MCNTL_SPECULATIVE_SHIFT, %o1 141 andn %o0, %o1, %o0 206 sub %o1, 8, %o1 207 brnz %o1, 0b [all …]
|
/titanic_44/usr/src/lib/libc/sparcv9/crt/ |
H A D | __align_cpy_4.s | 62 cmp %o0, %o1 65 and %o1, 7, %o4 ! Is source 8-byte aligned? 72 ld [%o1], %o3 ! Neither is aligned, so do 4 bytes; 78 add %o1, 4, %o1 91 ldx [%o1], %o3 92 ldx [%o1+8], %o4 96 add %o1, 16, %o1 108 ld [%o1], %o3 110 ldx [%o1], %o3 ! Have 8 or 12, so do 8. 112 add %o1, 8, %o1 [all …]
|
/titanic_44/usr/src/common/atomic/sparc/ |
H A D | atomic.s | 57 add %g0, 1, %o1 74 sub %g0, 1, %o1 96 sll %o1, %g1, %o1 ! %o1 = shifted to bit offset 97 and %o1, %o3, %o1 ! %o1 = single byte value 101 add %o2, %o1, %o5 ! add value to the old value 109 add %o2, %o1, %o5 129 add %g0, 1, %o1 146 sub %g0, 1, %o1 169 sll %o1, %g1, %o1 ! %o1 = shifted to bit offset 170 and %o1, %o3, %o1 ! %o1 = single short value [all …]
|
/titanic_44/usr/src/lib/libc/sparc/gen/ |
H A D | strcpy.s | 65 sub %o1, %o0, %o3 ! src - dst 66 andcc %o1, 3, %o4 ! src word aligned ? 72 ldub [%o2 + %o3], %o1 ! src[0] 73 tst %o1 ! byte zero? 74 stb %o1, [%o2] ! store first byte 81 lduh [%o2 + %o3], %o1 ! src[] 82 srl %o1, 8, %o4 ! %o4<7:0> = first byte 86 andcc %o1, 0xff, %g0 ! second byte zero ? 88 stb %o1, [%o2 + 1] ! store second byte 95 andcc %o2, 3, %o1 ! destination word aligned? [all …]
|
H A D | memcmp.s | 58 cmp %o0, %o1 ! s1 == s2? 62 sub %o1, %o0, %o1 66 andcc %o1, 3, %o4 ! is s2 aligned? 73 ldub [%o1], %o5 74 inc %o1 84 ldub [%o1], %o5 85 inc 1, %o1 89 ldub [%o1], %o5 ! delay slot, get next byte from s2 92 1: inc %o1 97 andcc %o1, 3, %o4 ! delay slot, is s2 aligned? [all …]
|
/titanic_44/usr/src/lib/libc/capabilities/sun4u-opl/common/ |
H A D | memcpy.s | 77 prefetch [%o1], N_READS_STRONG 79 cmp %o1, %o0 ! if from address is >= to use forward copy 81 sub %o0, %o1, %o4 ! get difference of two addresses 91 add %o1, %o2, %o1 ! get to end of source space 101 ldub [%o1-1], %o3 ! load last byte 103 sub %o1, 4, %o1 104 ldub [%o1+2], %o3 ! load 2nd from last byte 107 ldub [%o1+1], %o3 ! load 3rd from last byte 110 ldub [%o1], %o3 ! load 4th from last byte 117 dec %o1 ! decrement src address [all …]
|
/titanic_44/usr/src/lib/libc/sparcv9/gen/ |
H A D | memcmp.s | 57 cmp %o0, %o1 ! s1 == s2? 61 sub %o1, %o0, %o1 65 andcc %o1, 3, %o4 ! is s2 aligned? 72 ldub [%o1], %o5 73 inc %o1 83 ldub [%o1], %o5 84 inc 1, %o1 88 ldub [%o1], %o5 ! delay slot, get next byte from s2 91 1: inc %o1 96 andcc %o1, 3, %o4 ! delay slot, is s2 aligned? [all …]
|
H A D | strncpy.s | 71 add %o1, %o2, %o3 ! src = src + n 72 andcc %o1, 7, %o4 ! dword aligned ? 78 ldub [%o3 + %g4], %o1 ! src[] 79 stb %o1, [%o2 + %g4] ! dst[] = src[] 82 tst %o1 ! end of src reached (null byte) ? 110 ldx [%o3 + %g4], %o1 ! src dword 113 andn %o5, %o1, %g1 ! ~dword & 0x8080808080808080 114 sub %o1, %o4, %g5 ! dword - 0x0101010101010101 117 stx %o1, [%o2 + %g4] ! store word to dst (address pre-incremented) 124 srlx %o1, 56, %g1 ! first byte [all …]
|
H A D | strcpy.s | 64 sub %o1, %o0, %o3 ! src - dst 65 andcc %o1, 7, %o4 ! dword aligned ? 70 andcc %o1, 1, %g0 ! need to copy byte ? 72 sub %g0, %o1, %g1 ! %g1<2:0> = # of unaligned bytes 133 ldx [%o2 + %o3], %o1 ! src dword 135 andn %o5, %o1, %g1 ! ~dword & 0x8080808080808080 136 sub %o1, %o4, %g4 ! dword - 0x0101010101010101 139 stx %o1, [%o2 - 8] ! store word to dst (address pre-incremented) 144 srlx %o1, 56, %o3 ! %o3<7:0> = first byte 145 andcc %o1, %o4, %g0 ! first byte zero? [all …]
|
H A D | memset.s | 81 and %o1, 0xff, %o1 83 sll %o1, 8, %o4 ! generate 4 bytes filled with char 84 or %o1, %o4, %o1 85 sll %o1, 16, %o4 88 or %o1, %o4, %o1 90 sllx %o1, 32, %o4 ! now fill the other 4 bytes with char 91 or %o1, %o4, %o1 99 stb %o1, [%o5] ! clear a byte 105 stx %o1, [%o5] ! write aligned 8 bytes 119 stb %o1, [%o5] ! clear a byte [all …]
|
/titanic_44/usr/src/lib/libm/sparcv9/src/ |
H A D | locallibm.il | 137 sethi %hi(0x7ff00000),%o1 138 andcc %o0,%o1,%o0 148 andcc %o0,%o1,%o0 161 subcc %o1,%o0,%g0 295 sethi %hi(0x80100000),%o1 296 sllx %o1,32,%o1 298 andn %o0,%o1,%o0 360 and %o0,0x1f,%o1 361 sll %o1,5,%o1 366 or %o1,%o2,%o1 [all …]
|
/titanic_44/usr/src/lib/libc/capabilities/sun4u-us3/common/ |
H A D | memcpy.s | 74 cmp %o1, %o0 ! if from address is >= to use forward copy 76 sub %o0, %o1, %o4 ! get difference of two addresses 86 add %o1, %o2, %o1 ! get to end of source space 96 ldub [%o1-1], %o3 ! load last byte 98 sub %o1, 4, %o1 99 ldub [%o1+2], %o3 ! load 2nd from last byte 102 ldub [%o1+1], %o3 ! load 3rd from last byte 105 ldub [%o1], %o3 ! load 4th from last byte 112 dec %o1 ! decrement src address 113 ldub [%o1], %o3 ! read a byte [all …]
|
/titanic_44/usr/src/uts/sun4u/starfire/ml/ |
H A D | drmach.il.cpp | 84 stxa %o2, [%o1]ASI_MEM 85 add %o1, 8, %o1 86 stxa %o3, [%o1]ASI_MEM 87 add %o1, 8, %o1 88 stxa %g1, [%o1]ASI_MEM 89 add %o1, 8, %o1 90 stxa %g2, [%o1]ASI_MEM 108 srl %o1, 0, %o1 ! clear upper 32 bits 116 ldxa [%o0 + %o1]ASI_MEM, %g0 ! start reading from physaddr + size 118 subcc %o1, %o2, %o1 [all …]
|
/titanic_44/usr/src/lib/libc/sparc/fp/ |
H A D | __quad.s | 58 ldd [%o1],%f4 59 ldd [%o1+8],%f6 69 ldd [%o1],%f4 70 ldd [%o1+8],%f6 80 ldd [%o1],%f4 81 ldd [%o1+8],%f6 91 ldd [%o1],%f4 92 ldd [%o1+8],%f6 103 std %f4,[%o1] 105 std %f6,[%o1+8] [all …]
|
/titanic_44/usr/src/common/crypto/arcfour/sun4u/ |
H A D | arcfour_crypt_asm.s | 70 add %g1, 1, %o1 74 add %o1, 1, %g1 75 and %o1, 255, %o1 78 ldub [%i5 + %o1], %o3 93 stb %o4, [%i5 + %o1] 101 add %g1, 1, %o1 103 and %o1, 255, %o1 109 add %o1, 1, %g1 113 ldub [%i5 + %o1], %o3 132 stb %o4, [%i5 + %o1] [all …]
|
/titanic_44/usr/src/lib/libbc/libc/crt/sparc/ |
H A D | misalign.s | 56 lduh [%o0+2],%o1 ! do first one in delay slot 58 ldub [%o0+3],%o3 ! slow case: load 4 bytes in <o0,o1,o2,o3> 60 ldub [%o0+1],%o1 63 sll %o1,16,%o1 65 or %o1,%o0,%o0 ! put the pieces together. 73 or %o0,%o1,%o0 92 ldub [%i0+1],%o1 96 stb %o1,[%fp-3] 101 lduh [%i0+2],%o1 ! rest of short aligned case 103 sth %o1,[%fp-2] [all …]
|
/titanic_44/usr/src/common/atomic/sparcv9/ |
H A D | atomic.s | 178 add %g0, 1, %o1 195 sub %g0, 1, %o1 217 sll %o1, %g1, %o1 ! %o1 = shifted to bit offset 218 and %o1, %o3, %o1 ! %o1 = single byte value 222 add %o2, %o1, %o5 ! add value to the old value 230 add %o2, %o1, %o5 250 add %g0, 1, %o1 267 sub %g0, 1, %o1 290 sll %o1, %g1, %o1 ! %o1 = shifted to bit offset 291 and %o1, %o3, %o1 ! %o1 = single short value [all …]
|
/titanic_44/usr/src/lib/libm/sparc/src/ |
H A D | locallibm.il | 41 ld [%o1],%f1 49 ld [%o1],%o4 57 ld [%o1],%f0 ! second argument inf 67 ld [%o1],%f3 130 ld [%o1+4],%f0 ! f0 = a->imag 132 ld [%o1],%f2 ! f2 = a->real 159 ld [%o1],%f0 163 ld [%o1+4],%f3 175 ld [%o1+4],%f4 ! f4 gets ima 177 ld [%o1],%f19 ! f19 gets rea [all …]
|
/titanic_44/usr/src/uts/sun4v/ml/ |
H A D | hcall.s | 419 stx %o1, [%o2] 444 cmp %o1, H_BREAK 446 mov %o1, %o0 448 cmp %o1, H_HUP 450 mov %o1, %o0 452 stb %o1, [%o2] ! success, save character and return 0 464 stx %o1, [%o4] 496 stx %o1, [%o2] 574 stx %o1, [%o2] 586 mov %o1, %o2 [all …]
|
/titanic_44/usr/src/uts/sun4u/serengeti/ml/ |
H A D | sbdp.il.cpp | 87 stxa %o2, [%o1]ASI_MEM 88 add %o1, 8, %o1 89 stxa %o3, [%o1]ASI_MEM 90 add %o1, 8, %o1 91 stxa %g1, [%o1]ASI_MEM 92 add %o1, 8, %o1 93 stxa %g2, [%o1]ASI_MEM 95 stxa %g0, [%o1]ASI_DC_INVAL /* flush line from dcache */ 129 ECACHE_FLUSHALL(%o1, %o2, %o0, %o4) 161 stwa %o1, [%o0]ASI_IO /* store value via bypass ASI */ [all …]
|