src/os_cpu/solaris_sparc/vm/solaris_sparc.il

changeset 2460
85c73c0edb06
parent 1907
c18cbe5936b8
child 5283
46c544b8fbfc
equal deleted inserted replaced
2459:75efcee5ac47 2460:85c73c0edb06
1 // 1 //
2 // Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. 2 // Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 // 4 //
5 // This code is free software; you can redistribute it and/or modify it 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 6 // under the terms of the GNU General Public License version 2 only, as
7 // published by the Free Software Foundation. 7 // published by the Free Software Foundation.
150 srl %o0, 0, %o1 150 srl %o0, 0, %o1
151 srlx %o0, 32, %o0 151 srlx %o0, 32, %o0
152 .nonvolatile 152 .nonvolatile
153 .end 153 .end
154 154
155 // Support for jlong Atomic::load and Atomic::store on v8.
156 //
157 // void _Atomic_move_long_v8(volatile jlong* src, volatile jlong* dst)
158 //
159 // Arguments:
160 // src: O0
161 // dest: O1
162 //
163 // Overwrites O2 and O3
164
165 .inline _Atomic_move_long_v8,2
166 .volatile
167 ldd [%o0], %o2
168 std %o2, [%o1]
169 .nonvolatile
170 .end
171
172 // Support for jlong Atomic::load and Atomic::store on v9.
173 //
174 // void _Atomic_move_long_v9(volatile jlong* src, volatile jlong* dst)
175 //
176 // Arguments:
177 // src: O0
178 // dest: O1
179 //
180 // Overwrites O2
181
182 .inline _Atomic_move_long_v9,2
183 .volatile
184 ldx [%o0], %o2
185 stx %o2, [%o1]
186 .nonvolatile
187 .end
155 188
156 // Support for jint Atomic::add(jint add_value, volatile jint* dest). 189 // Support for jint Atomic::add(jint add_value, volatile jint* dest).
157 // 190 //
158 // Arguments: 191 // Arguments:
159 // add_value: O0 (e.g., +1 or -1) 192 // add_value: O0 (e.g., +1 or -1)

mercurial