src/hotspot/os_cpu/linux_sparc/linux_sparc.s
changeset 47216 71c04702a3d5
parent 22234 da823d78ad65
equal deleted inserted replaced
47215:4ebc2e2fb97c 47216:71c04702a3d5
       
     1 #
       
     2 # Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
       
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4 #
       
     5 # This code is free software; you can redistribute it and/or modify it
       
     6 # under the terms of the GNU General Public License version 2 only, as
       
     7 # published by the Free Software Foundation.
       
     8 #
       
     9 # This code is distributed in the hope that it will be useful, but WITHOUT
       
    10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    12 # version 2 for more details (a copy is included in the LICENSE file that
       
    13 # accompanied this code).
       
    14 #
       
    15 # You should have received a copy of the GNU General Public License version
       
    16 # 2 along with this work; if not, write to the Free Software Foundation,
       
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    18 #
       
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    20 # or visit www.oracle.com if you need additional information or have any
       
    21 # questions.
       
    22 #
       
    23 
       
    24     # Possibilities:
       
    25     # -- membar
       
    26     # -- CAS (SP + BIAS, G0, G0)
       
    27     # -- wr %g0, %asi
       
    28 
       
    29     .globl SpinPause
       
    30     .type   SpinPause,@function
       
    31     .align  32
       
    32 SpinPause:      
       
    33     retl
       
    34     mov %g0, %o0
       
    35 
       
    36    .globl _Copy_conjoint_jlongs_atomic
       
    37    .type   _Copy_conjoint_jlongs_atomic,@function
       
    38 _Copy_conjoint_jlongs_atomic:
       
    39         cmp     %o0, %o1
       
    40 	bleu    4f
       
    41 	sll     %o2, 3, %o4
       
    42         ba      2f
       
    43    1:
       
    44 	subcc   %o4, 8, %o4
       
    45 	std     %o2, [%o1]
       
    46 	add     %o0, 8, %o0
       
    47 	add     %o1, 8, %o1
       
    48    2:
       
    49 	bge,a   1b
       
    50 	ldd     [%o0], %o2
       
    51 	ba      5f
       
    52         nop
       
    53    3:
       
    54 	std     %o2, [%o1+%o4]
       
    55    4:
       
    56 	subcc   %o4, 8, %o4
       
    57 	bge,a   3b
       
    58 	ldd     [%o0+%o4], %o2
       
    59    5:      
       
    60 	retl
       
    61 	nop
       
    62 
       
    63 
       
    64     .globl _flush_reg_windows
       
    65     .align 32
       
    66  _flush_reg_windows:
       
    67         ta 0x03
       
    68         retl
       
    69         mov     %fp, %o0