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
32SpinPause:
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
70