| !! |
| !! Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. |
| !! DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| !! |
| !! This code is free software; you can redistribute it and/or modify it |
| !! under the terms of the GNU General Public License version 2 only, as |
| !! published by the Free Software Foundation. |
| !! |
| !! This code is distributed in the hope that it will be useful, but WITHOUT |
| !! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| !! FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| !! version 2 for more details (a copy is included in the LICENSE file that |
| !! accompanied this code). |
| !! |
| !! You should have received a copy of the GNU General Public License version |
| !! 2 along with this work; if not, write to the Free Software Foundation, |
| !! Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| !! |
| !! Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| !! or visit www.oracle.com if you need additional information or have any |
| !! questions. |
| !! |
| |
| !! Possibilities: |
| !! -- membar |
| !! -- CAS (SP + BIAS, G0, G0) |
| !! -- wr %g0, %asi |
| |
| .global SpinPause |
| .align 32 |
| SpinPause: |
| retl |
| mov %g0, %o0 |
| |
| |
| |
| .globl _Copy_conjoint_jlongs_atomic |
| .align 32 |
| .global _Copy_conjoint_jlongs_atomic |
| _Copy_conjoint_jlongs_atomic: |
| cmp %o0, %o1 |
| bleu 4f |
| sll %o2, 3, %o4 |
| ba 2f |
| 1: |
| subcc %o4, 8, %o4 |
| std %o2, [%o1] |
| add %o0, 8, %o0 |
| add %o1, 8, %o1 |
| 2: |
| bge,a 1b |
| ldd [%o0], %o2 |
| ba 5f |
| nop |
| 3: |
| std %o2, [%o1+%o4] |
| 4: |
| subcc %o4, 8, %o4 |
| bge,a 3b |
| ldd [%o0+%o4], %o2 |
| 5: |
| retl |
| nop |
| |
| |
| |
| .globl _raw_thread_id |
| .align 32 |
| _raw_thread_id: |
| .register %g7, #scratch |
| retl |
| mov %g7, %o0 |
| |
| |
| .globl _flush_reg_windows |
| .align 32 |
| _flush_reg_windows: |
| ta 0x03 |
| retl |
| mov %fp, %o0 |
| |
| |