/illumos-gate/usr/src/uts/sun4u/cpu/ |
H A D | cheetah_copy.S | 741 xor %o0, %o1, %o3 ! are src, dst alignable? 742 btst 7, %o3 ! 745 btst 1, %o3 ! 748 sethi %hi(hw_copy_limit_1), %o3 ! Check copy limit 749 ld [%o3 + %lo(hw_copy_limit_1)], %o3 750 tst %o3 752 cmp %o2, %o3 ! if length <= limit 758 btst 3, %o3 ! 761 sethi %hi(hw_copy_limit_2), %o3 ! Check copy limit 762 ld [%o3 + %lo(hw_copy_limit_2)], %o3 [all …]
|
H A D | opl_olympus_copy.S | 698 xor %o0, %o1, %o3 ! are src, dst alignable? 699 btst 7, %o3 ! 702 btst 1, %o3 ! 705 sethi %hi(hw_copy_limit_1), %o3 ! Check copy limit 706 ld [%o3 + %lo(hw_copy_limit_1)], %o3 707 tst %o3 709 cmp %o2, %o3 ! if length <= limit 715 btst 3, %o3 ! 718 sethi %hi(hw_copy_limit_2), %o3 ! Check copy limit 719 ld [%o3 + %lo(hw_copy_limit_2)], %o3 [all …]
|
/illumos-gate/usr/src/common/atomic/sparcv9/ |
H A D | atomic.S | 215 set 0xff, %o3 ! %o3 = mask 216 sll %o3, %g1, %o3 ! %o3 = shifted to bit offset 218 and %o1, %o3, %o1 ! %o1 = single byte value 223 and %o5, %o3, %o5 ! clear other bits 224 andn %o2, %o3, %o4 ! clear target bits 231 and %o5, %o3, %o5 288 sethi %hi(0xffff0000), %o3 ! %o3 = mask 289 srl %o3, %o4, %o3 ! %o3 = shifted to bit offset 291 and %o1, %o3, %o1 ! %o1 = single short value 297 and %o5, %o3, %o5 ! clear other bits [all …]
|
/illumos-gate/usr/src/common/atomic/sparc/ |
H A D | atomic.S | 94 set 0xff, %o3 ! %o3 = mask 95 sll %o3, %g1, %o3 ! %o3 = shifted to bit offset 97 and %o1, %o3, %o1 ! %o1 = single byte value 102 and %o5, %o3, %o5 ! clear other bits 103 andn %o2, %o3, %o4 ! clear target bits 110 and %o5, %o3, %o5 167 sethi %hi(0xffff0000), %o3 ! %o3 = mask 168 srl %o3, %o4, %o3 ! %o3 = shifted to bit offset 170 and %o1, %o3, %o1 ! %o1 = single short value 176 and %o5, %o3, %o5 ! clear other bits [all …]
|
/illumos-gate/usr/src/uts/sun4v/cpu/ |
H A D | niagara_copy.S | 606 andcc %o1, 0x7, %o3 ! is dest long aligned 608 andcc %o1, 1, %o3 ! is dest byte aligned 612 andcc %o0, 7, %o3 613 brnz,pt %o3, .bc_src_dst_unal8 713 andcc %o1, 2, %o3 716 andcc %o1, 4, %o3 ! is dest longword aligned? 721 ldub [%o0+1], %o3 723 sll %o3, 16, %o3 ! position 724 or %o4, %o3, %o3 ! merge 727 or %o4, %o3, %o3 ! merge [all …]
|
/illumos-gate/usr/src/common/crypto/arcfour/sun4u/ |
H A D | arcfour_crypt_asm.S | 78 ldub [%i5 + %o1], %o3 82 add %g2, %o3, %o2 90 stb %o3, [%i5+%o2] 95 add %o3,%o4,%o5 113 ldub [%i5 + %o1], %o3 118 add %g2, %o3, %o2 129 stb %o3, [%i5+%o2] 134 add %o3,%o4,%o5 152 ldub [%i5 + %o1], %o3 158 add %g2, %o3, %o2 [all …]
|
/illumos-gate/usr/src/lib/libc/capabilities/sun4v/common/ |
H A D | memset.S | 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 93 andcc %o5, 7, %o3 ! is sp1 aligned on a 8 byte bound 95 sub %o3, 8, %o3 ! -(bytes till double aligned) 96 add %o2, %o3, %o2 ! update o2 with new count 98 ! Set -(%o3) bytes till sp1 double aligned [all …]
|
H A D | memcpy.S | 225 andcc %g1, 7, %o3 ! %o3 has bytes till dst 8 bytes aligned 227 andn %o2, 7, %o3 ! %o3 count is multiple of 8 bytes size 228 sub %o2, %o3, %o2 ! update o2 with new count 232 deccc %o3 ! decrement count 235 andncc %o2, 7, %o3 ! %o3 count is multiple of 8 bytes size 242 sub %o2, %o3, %o2 ! Residue bytes in %o2 255 sllx %o0, %g1, %o3 ! shift loaded 8 bytes left into tmp reg 256 or %o1, %o3, %o3 ! align data 257 stx %o3, [%o5+%o4] ! store 8 byte 272 subcc %o3, 8, %o3 ! subtract from size [all …]
|
/illumos-gate/usr/src/common/crypto/des/sun4u/ |
H A D | des_crypt_asm.s | 2322 sllx %g2, 3, %o3 2328 and %o3, 0x7f8, %o3 2331 ldx [%l6 + %o3], %o3 2354 sllx %o3, 6, %o3 2360 or %o2, %o3, %o2 2376 and %o1, %g2, %o3 2378 srlx %o3, 5, %o3 2388 or %o1, %o3, %o1 2449 sllx %g2, 3, %o3 2455 and %o3, 0x7f8, %o3 [all …]
|
/illumos-gate/usr/src/uts/sun4u/opl/ml/ |
H A D | drmach_asm.S | 70 FJSV_SPECULATIVE_OFF(%o5, %o3, %o4); 73 mov %o0, %o3 75 ldx [%o3], %o4 78 add %o3, 8, %o3 82 ldxa [%o1]ASI_L2_CTRL, %o3 84 btst %o3, %o4 91 set FMEM_LOOP_FMEM_READY, %o3 92 stb %o3, [%o2] 111 mov ASI_L2_CTRL_RW_ADDR, %o3 112 ldxa [%o3]ASI_L2_CTRL, %o3 [all …]
|
/illumos-gate/usr/src/uts/sun4u/io/ |
H A D | panther_asm.S | 159 UNPARK_SIBLING_CORE(%g1, %o3, %o4) ! 7 instructions 170 and %o3, 0x7, %o3 171 cmp %o3, 0x5 242 setx DCU_IPS_MASK, %g2, %o3 244 andn %g1, %o3, %g4 247 PARK_SIBLING_CORE(%g1, %o3, %o4) ! %g1 has DCU value 250 PN_ECACHE_FLUSH_LINE(%o0, %o3, %o4, %o5, %g2) 254 ldxa [%o0]ASI_EC_DIAG, %o3 255 btst 0x7, %o3 298 setx DCU_IPS_MASK, %g2, %o3 [all …]
|
/illumos-gate/usr/src/lib/libc/capabilities/sun4u-opl/common/ |
H A D | memcpy.S | 101 ldub [%o1-1], %o3 ! load last byte 102 stb %o3, [%o0-1] ! store last byte 104 ldub [%o1+2], %o3 ! load 2nd from last byte 105 stb %o3, [%o0-2] ! store 2nd from last byte 107 ldub [%o1+1], %o3 ! load 3rd from last byte 108 stb %o3, [%o0+1] ! store 3rd from last byte 110 ldub [%o1], %o3 ! load 4th from last byte 112 stb %o3, [%o0] ! store 4th from last byte 118 ldub [%o1], %o3 ! read a byte 122 stb %o3, [%o0] ! write byte [all …]
|
/illumos-gate/usr/src/lib/libc/capabilities/sun4u-us3/common/ |
H A D | memcpy.S | 96 ldub [%o1-1], %o3 ! load last byte 97 stb %o3, [%o0-1] ! store last byte 99 ldub [%o1+2], %o3 ! load 2nd from last byte 100 stb %o3, [%o0-2] ! store 2nd from last byte 102 ldub [%o1+1], %o3 ! load 3rd from last byte 103 stb %o3, [%o0+1] ! store 3rd from last byte 105 ldub [%o1], %o3 ! load 4th from last byte 107 stb %o3, [%o0] ! store 4th from last byte 113 ldub [%o1], %o3 ! read a byte 117 stb %o3, [%o0] ! write byte [all …]
|
H A D | memcmp.S | 67 mov %o2, %o3 ! o3 <= 48 77 mov 8, %o3 ! o2 > 48; o3 = 8 80 sub %o3, %o4, %o3 ! o3 = 8 + (num of bytes to dbl align) 89 deccc %o3 154 and %o3, 0x4, %o3 ! fprs.du = fprs.dl = 0 155 wr %o3, %g0, %fprs ! fprs = o3 - restore fprs 160 and %o3, 0x4, %o3 ! fprs.du = fprs.dl = 0 161 wr %o3, %g0, %fprs ! fprs = o3 - restore fprs
|
/illumos-gate/usr/src/lib/libc/sparcv9/crt/ |
H A D | __align_cpy_4.S | 64 and %o0, 7, %o3 ! Is target 8-byte aligned? 66 cmp %o3, %o4 69 brz,pt %o3, .both8 ! Both are 8-byte aligned. 72 ld [%o1], %o3 ! Neither is aligned, so do 4 bytes; 74 st %o3, [%g1] 91 ldx [%o1], %o3 94 stx %o3, [%g1] 108 ld [%o1], %o3 110 ldx [%o1], %o3 ! Have 8 or 12, so do 8. 111 stx %o3, [%g1] [all …]
|
/illumos-gate/usr/src/lib/libc/sparcv9/gen/ |
H A D | strcmp.S | 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 ? 88 sllx %o3, 3, %g5 ! leftshift = 8*ofs 96 add %o2, %o3, %o2 ! adjust pointers 101 andn %o4, %o0, %o3 ! ~word & 0x80808080 103 andcc %o0, %o3, %g0 ! (word - 0x01010101) & ~word & 0x80808080 107 srlx %o0, %g4, %o3 ! bytes from aligned word from s2 108 or %g1, %o3, %g1 ! merge to get unaligned word from s2 [all …]
|
H A D | strcpy.S | 64 sub %o1, %o0, %o3 ! src - dst 73 ldub [%o2 + %o3], %o5 ! src[0] 83 lduh [%o2 + %o3], %o5 ! load src halfword 97 lduw [%o2 + %o3], %o5 ! load src word 133 ldx [%o2 + %o3], %o1 ! src dword 144 srlx %o1, 56, %o3 ! %o3<7:0> = first byte 147 stb %o3, [%o2 - 8] ! store first byte 149 srlx %o1, 48, %o3 ! %o3<7:0> = second byte 152 stb %o3, [%o2 - 7] ! store second byte 154 srlx %o1, 40, %o3 ! %o3<7:0> = third byte [all …]
|
/illumos-gate/usr/src/cmd/sgs/rtld/sparcv9/ |
H A D | boot_elf.S | 110 mov %i7, %o3 ! Save callers address(profiling) 136 mov %i7, %o3 ! Save callers address 406 sethi %hi(M_JMPL_G1G0), %o3 ! Get "jmpl %g1, %g0" insn 407 st %o3, [%o0 + 0xc] ! store instruction in plt[3] 411 sethi %hi(M_XNOR_G5G1), %o3 ! Get "xnor %g5, %g1, %g1" insn 413 or %o3, %o2, %o3 ! or value into instruction 414 st %o3, [%o0 + 0x8] ! store instruction in plt[2] 417 sethi %hi(M_SETHI_G5), %o3 ! Get "sethi 0x0, %g5" insn 419 or %o3, %o2, %o3 ! or value into instruction 423 or %o3, %o4, %o3 ! or value into instruction pair [all …]
|
/illumos-gate/usr/src/uts/sparc/v9/ml/ |
H A D | crt.S | 53 ld [%i7 + 8], %o3 57 cmp %o5, %o3 78 ld [%i7 + 8], %o3 82 cmp %o5, %o3 104 srl %o3, 0, %o3; \ 106 or %o2, %o3, %o2 137 sdivx %o1, %o2, %o3 138 mulx %o2, %o3, %o3 139 sub %o1, %o3, %o1 146 udivx %o1, %o2, %o3 [all …]
|
/illumos-gate/usr/src/lib/libc/capabilities/sun4u/common/ |
H A D | memcmp.S | 63 mov %o2, %o3 ! o3 <= 48 70 mov 8, %o3 ! o2 > 48; o3 = 8 73 sub %o3, %o4, %o3 ! o3 = 8 + (num of bytes to dbl align) 83 deccc %o3 150 and %o3, 0x4, %o3 ! fprs.du = fprs.dl = 0 151 wr %o3, %g0, %fprs ! fprs = o3 - restore fprs 156 and %o3, 0x4, %o3 ! fprs.du = fprs.dl = 0 157 wr %o3, %g0, %fprs ! fprs = o3 - restore fprs
|
/illumos-gate/usr/src/lib/libc/sparc/gen/ |
H A D | lshiftl.S | 54 ld [%o0+4],%o3 ! fetch op.dl_lop 65 sll %o3,%o5,%o2 ! R.h = R.l << (cnt - 32) 67 or %g0,%g0,%o3 ! R.l = 0 70 srl %o3,%o4,%o5 ! temp = R.l >> (31 - cnt) 71 sll %o3,%o1,%o3 ! R.l = R.l << cnt 81 srl %o2,%o5,%o3 ! R.l = R.h >> (cnt - 32) 87 srl %o3,%o4,%o3 ! R.l = R.l >> cnt 90 or %o3,%o5,%o3 ! R.l = R.l | temp 95 st %o3,[%o0+4] ! store result, dl_lop
|
H A D | strcpy.S | 65 sub %o1, %o0, %o3 ! src - dst 72 ldub [%o2 + %o3], %o1 ! src[0] 81 lduh [%o2 + %o3], %o1 ! src[] 100 lduw [%o2 + %o3], %o1 ! src word 111 srl %o1, 24, %o3 ! %o3<7:0> = first byte 114 stb %o3, [%o2 - 4] ! store first byte 116 srl %o1, 16, %o3 ! %o3<7:0> = second byte 119 stb %o3, [%o2 - 3] ! store second byte 122 srl %o1, 8, %o3 ! %o3<7:0> = third byte 124 stb %o3, [%o2 - 2] ! store third byte [all …]
|
/illumos-gate/usr/src/uts/sun4v/vm/ |
H A D | mach_sfmmu_asm.S | 249 sethi %hi(ksfmmup), %o3 250 ldx [%o3 + %lo(ksfmmup)], %o3 251 cmp %o3, %o0 255 set MMU_SCONTEXT, %o3 256 ldxa [%o3]ASI_MMU_CTX, %o5 262 CPU_TSBMISS_AREA(%o2, %o3) ! %o2 = tsbmiss area 290 MAKE_UTSBREG(%o1, %o2, %o3) ! %o2 = user tsbreg 291 SET_UTSBREG(SCRATCHPAD_UTSBREG1, %o2, %o3) 297 MAKE_UTSBREG(%g2, %o2, %o3) ! %o2 = user tsbreg 299 SET_UTSBREG(SCRATCHPAD_UTSBREG2, %o2, %o3) [all …]
|
/illumos-gate/usr/src/common/crypto/sha1/sparc/sun4u/ |
H A D | sha1_asm.S | 109 rd %gsr, %o3 110 stx %o3, [%o0 + FPU_GSR] 129 ldx [%o0 + FPU_GSR], %o3 131 wr %o3, 0, %gsr 151 ld [%i2 + 12], %o3 163 andn %o3, %o1, %l4 204 add %o3, %g1, %l1 241 add %l0, %l2, %o3 244 sll %o3, 5, %l0 248 srl %o3, 27, %l3 [all …]
|
/illumos-gate/usr/src/lib/libc/sparcv9/fp/ |
H A D | __quad_mag64.S | 221 mov 1,%o3 222 sllx %o3,%l2,%o3 223 sub %o3,1,%o3 224 and %o3,%o2,%o3 225 or %o3,%l6,%o3 226 or %o7,%o3,%o7 236 ldx [%i0+8],%o3 237 add %o2,%o3,%o2 ! add, propagating carry 238 cmp %o2,%o3 250 sllx %o0,63,%o3 [all …]
|