annotate src/os_cpu/solaris_sparc/vm/solaris_sparc.s @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents de6a9e811145
children 89152779163c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 !!
14909
4ca6dc0799b6 Backout jdk9 merge
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 14223
diff changeset
2 !! Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 !! DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 !!
a61af66fc99e Initial load
duke
parents:
diff changeset
5 !! This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 !! under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 !! published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 !!
a61af66fc99e Initial load
duke
parents:
diff changeset
9 !! This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 !! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 !! FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 !! version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 !! accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 !!
a61af66fc99e Initial load
duke
parents:
diff changeset
15 !! You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 !! 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 !! Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 !!
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 196
diff changeset
19 !! Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 196
diff changeset
20 !! or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 196
diff changeset
21 !! questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 !!
a61af66fc99e Initial load
duke
parents:
diff changeset
23
a61af66fc99e Initial load
duke
parents:
diff changeset
24 !! Possibilities:
a61af66fc99e Initial load
duke
parents:
diff changeset
25 !! -- membar
a61af66fc99e Initial load
duke
parents:
diff changeset
26 !! -- CAS (SP + BIAS, G0, G0)
a61af66fc99e Initial load
duke
parents:
diff changeset
27 !! -- wr %g0, %asi
a61af66fc99e Initial load
duke
parents:
diff changeset
28
a61af66fc99e Initial load
duke
parents:
diff changeset
29 .global SpinPause
a61af66fc99e Initial load
duke
parents:
diff changeset
30 .align 32
a61af66fc99e Initial load
duke
parents:
diff changeset
31 SpinPause:
a61af66fc99e Initial load
duke
parents:
diff changeset
32 retl
a61af66fc99e Initial load
duke
parents:
diff changeset
33 mov %g0, %o0
a61af66fc99e Initial load
duke
parents:
diff changeset
34
a61af66fc99e Initial load
duke
parents:
diff changeset
35
a61af66fc99e Initial load
duke
parents:
diff changeset
36
a61af66fc99e Initial load
duke
parents:
diff changeset
37 .globl _Copy_conjoint_jlongs_atomic
a61af66fc99e Initial load
duke
parents:
diff changeset
38 .align 32
a61af66fc99e Initial load
duke
parents:
diff changeset
39 .global _Copy_conjoint_jlongs_atomic
a61af66fc99e Initial load
duke
parents:
diff changeset
40 _Copy_conjoint_jlongs_atomic:
a61af66fc99e Initial load
duke
parents:
diff changeset
41 cmp %o0, %o1
a61af66fc99e Initial load
duke
parents:
diff changeset
42 bleu 4f
a61af66fc99e Initial load
duke
parents:
diff changeset
43 sll %o2, 3, %o4
a61af66fc99e Initial load
duke
parents:
diff changeset
44 ba 2f
a61af66fc99e Initial load
duke
parents:
diff changeset
45 1:
a61af66fc99e Initial load
duke
parents:
diff changeset
46 subcc %o4, 8, %o4
a61af66fc99e Initial load
duke
parents:
diff changeset
47 std %o2, [%o1]
a61af66fc99e Initial load
duke
parents:
diff changeset
48 add %o0, 8, %o0
a61af66fc99e Initial load
duke
parents:
diff changeset
49 add %o1, 8, %o1
a61af66fc99e Initial load
duke
parents:
diff changeset
50 2:
a61af66fc99e Initial load
duke
parents:
diff changeset
51 bge,a 1b
a61af66fc99e Initial load
duke
parents:
diff changeset
52 ldd [%o0], %o2
a61af66fc99e Initial load
duke
parents:
diff changeset
53 ba 5f
a61af66fc99e Initial load
duke
parents:
diff changeset
54 nop
a61af66fc99e Initial load
duke
parents:
diff changeset
55 3:
a61af66fc99e Initial load
duke
parents:
diff changeset
56 std %o2, [%o1+%o4]
a61af66fc99e Initial load
duke
parents:
diff changeset
57 4:
a61af66fc99e Initial load
duke
parents:
diff changeset
58 subcc %o4, 8, %o4
a61af66fc99e Initial load
duke
parents:
diff changeset
59 bge,a 3b
a61af66fc99e Initial load
duke
parents:
diff changeset
60 ldd [%o0+%o4], %o2
a61af66fc99e Initial load
duke
parents:
diff changeset
61 5:
a61af66fc99e Initial load
duke
parents:
diff changeset
62 retl
a61af66fc99e Initial load
duke
parents:
diff changeset
63 nop
a61af66fc99e Initial load
duke
parents:
diff changeset
64
a61af66fc99e Initial load
duke
parents:
diff changeset
65
a61af66fc99e Initial load
duke
parents:
diff changeset
66
a61af66fc99e Initial load
duke
parents:
diff changeset
67 .globl _raw_thread_id
a61af66fc99e Initial load
duke
parents:
diff changeset
68 .align 32
a61af66fc99e Initial load
duke
parents:
diff changeset
69 _raw_thread_id:
113
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 0
diff changeset
70 .register %g7, #scratch
0
a61af66fc99e Initial load
duke
parents:
diff changeset
71 retl
a61af66fc99e Initial load
duke
parents:
diff changeset
72 mov %g7, %o0
a61af66fc99e Initial load
duke
parents:
diff changeset
73
a61af66fc99e Initial load
duke
parents:
diff changeset
74
a61af66fc99e Initial load
duke
parents:
diff changeset
75 .globl _flush_reg_windows
a61af66fc99e Initial load
duke
parents:
diff changeset
76 .align 32
a61af66fc99e Initial load
duke
parents:
diff changeset
77 _flush_reg_windows:
a61af66fc99e Initial load
duke
parents:
diff changeset
78 ta 0x03
a61af66fc99e Initial load
duke
parents:
diff changeset
79 retl
a61af66fc99e Initial load
duke
parents:
diff changeset
80 mov %fp, %o0
a61af66fc99e Initial load
duke
parents:
diff changeset
81
a61af66fc99e Initial load
duke
parents:
diff changeset
82