linux_sparc.s revision 5776:de6a9e811145
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