/illumos-gate/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 …]
|
/illumos-gate/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 …]
|
/illumos-gate/usr/src/uts/sun4u/opl/ml/ |
H A D | drmach_asm.S | 76 sub %o1, 8, %o1 77 brnz %o1, 0b 81 mov ASI_L2_CTRL_RW_ADDR, %o1 82 ldxa [%o1]ASI_L2_CTRL, %o3 87 stxa %o4, [%o1]ASI_L2_CTRL 126 set 1, %o1 127 sllx %o1, MCNTL_SPECULATIVE_SHIFT, %o1 128 andn %o0, %o1, %o0 179 sub %o1, 8, %o1 180 brnz %o1, 0b [all …]
|
/illumos-gate/usr/src/uts/sparc/v9/ml/ |
H A D | crt.S | 54 and %o1, MASK, %o4 63 subcc %o1, 4, %o1 64 ld [%o0 + %o1], %o4 66 st %o4, [%i0 + %o1] ! delay slot 79 and %o1, MASK, %o4 88 subcc %o1, 2, %o1 89 lduh [%o0 + %o1], %o4 91 sth %o4, [%i0 + %o1] ! delay slot 102 srl %o1, 0, %o1; \ 105 or %o0, %o1, %o1; \ [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/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 …]
|
/illumos-gate/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 …]
|
H A D | strlen.S | 69 lduh [%o2], %o1 71 ldub [%o2], %o1 72 tst %o1 ! byte zero? 79 lduh [%o2], %o1 82 srl %o1, 8, %o4 85 andcc %o1, 0xff, %g0 93 ld [%o2], %o1 99 andn %o5, %o1, %o3 100 sub %o1, %o4, %g1 105 ld [%o2+4], %o1 [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/usr/src/uts/sun4v/ml/ |
H A D | hcall.S | 84 stx %o1, [%o2] 109 cmp %o1, H_BREAK 111 mov %o1, %o0 113 cmp %o1, H_HUP 115 mov %o1, %o0 117 stb %o1, [%o2] ! success, save character and return 0 129 stx %o1, [%o4] 161 stx %o1, [%o2] 239 stx %o1, [%o2] 251 mov %o1, %o2 [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/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 …]
|
H A D | strlen.S | 69 lduh [%o2], %o1 71 ldub [%o2], %o1 72 tst %o1 ! byte zero? 79 lduh [%o2], %o1 82 srl %o1, 8, %o4 85 andcc %o1, 0xff, %g0 93 ld [%o2], %o1 99 andn %o5, %o1, %o3 100 sub %o1, %o4, %g1 105 ld [%o2+4], %o1 [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/usr/src/lib/libc/sparc/fp/ |
H A D | __quad.S | 55 ldd [%o1],%f4 56 ldd [%o1+8],%f6 66 ldd [%o1],%f4 67 ldd [%o1+8],%f6 77 ldd [%o1],%f4 78 ldd [%o1+8],%f6 88 ldd [%o1],%f4 89 ldd [%o1+8],%f6 100 std %f4,[%o1] 102 std %f6,[%o1+8] [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/usr/src/common/bignum/sun4u/ |
H A D | mont_mulf_v8plus.s | 172 /* 0x0024 67 */ or %g0,%i3,%o1 175 /* 0x0030 67 */ sethi %hi(0xfc00),%o1 177 /* 0x0038 */ add %o1,1023,%o1 207 /* 0x0074 80 */ and %g1,%o1,%o0 241 /* 0x00f8 80 */ and %g1,%o1,%g3 266 /* 0x0150 80 */ and %g1,%o1,%g3 337 /* 0x0004 */ or %g0,%o1,%g4 363 /* 0x0048 */ add %o1,16,%g4 365 /* 0x0050 */ ld [%o1],%f7 367 /* 0x0058 */ ld [%o1+4],%f5 [all …]
|
/illumos-gate/usr/src/uts/sun4v/vm/ |
H A D | mach_sfmmu_asm.S | 112 mov %o1, %g4 117 mov %g0, %o1 ! XXX no cpu list yet 127 mov %g4, %o1 165 mov %o1, %g4 168 clr %o1 174 mov %g4, %o1 209 mov MMU_SCONTEXT, %o1 210 stxa %o0, [%o1]ASI_MMU_CTX /* set 2nd context reg. */ 230 mov 1, %o1 231 st %o1, [%o2] [all …]
|
/illumos-gate/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 …]
|
/illumos-gate/usr/src/uts/sun4u/ml/ |
H A D | mach_xc.S | 76 stna %o1, [%g4 + TRAP_ENT_F1]%asi ! arg 1 85 mov %o1, %g1 104 ldn [%o1], %g2 120 add %o1, CPUSET_SIZE, %g5 /* end of cpuset */ 136 ldn [%o1], %g2 138 add %o1, CLONGSIZE, %o1 139 cmp %o1, %g5 141 ldn [%o1], %g2 143 add %o1, CLONGSIZE, %o1 144 cmp %o1, %g5 [all …]
|