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