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) |