diff options
author | Roland McGrath <roland@hack.frob.com> | 2014-06-12 14:33:59 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2014-06-12 14:33:59 -0700 |
commit | e26822463f4c36746a25b9b25552c43c350862b8 (patch) | |
tree | bfe55df502169587c0c84391bbfefe15fc2ac2b6 /sysdeps/sparc/sparc32 | |
parent | b0725f43245ce50cfafa7de41bb7aeb8e4c4cb00 (diff) | |
download | glibc-e26822463f4c36746a25b9b25552c43c350862b8.tar.gz glibc-e26822463f4c36746a25b9b25552c43c350862b8.tar.xz glibc-e26822463f4c36746a25b9b25552c43c350862b8.zip |
Move SPARC code out of nptl/sysdeps/sparc/.
Diffstat (limited to 'sysdeps/sparc/sparc32')
7 files changed, 98 insertions, 0 deletions
diff --git a/sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S b/sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S new file mode 100644 index 0000000000..3accc69615 --- /dev/null +++ b/sysdeps/sparc/sparc32/nptl/pthread_spin_lock.S @@ -0,0 +1,32 @@ +/* Copyright (C) 2012-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + + .text +ENTRY(pthread_spin_lock) +1: ldstub [%o0], %g1 + orcc %g1, 0x0, %g0 + bne,a 2f + ldub [%o0], %g1 + retl + mov 0, %o0 +2: orcc %g1, 0x0, %g0 + bne,a 2b + ldub [%o0], %g1 + ba,a 1b +END(pthread_spin_lock) diff --git a/sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S new file mode 100644 index 0000000000..68215ab2c9 --- /dev/null +++ b/sysdeps/sparc/sparc32/nptl/pthread_spin_trylock.S @@ -0,0 +1,29 @@ +/* Copyright (C) 2012-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <pthread-errnos.h> + + .text +ENTRY(pthread_spin_trylock) + ldstub [%o0], %o0 + cmp %o0, 0 + bne,a 1f + mov EBUSY, %o0 +1: retl + nop +END(pthread_spin_trylock) diff --git a/sysdeps/sparc/sparc32/nptl/pthreaddef.h b/sysdeps/sparc/sparc32/nptl/pthreaddef.h new file mode 100644 index 0000000000..eb8d33bcff --- /dev/null +++ b/sysdeps/sparc/sparc32/nptl/pthreaddef.h @@ -0,0 +1,33 @@ +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* Default stack size. */ +#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) + +/* Required stack pointer alignment at beginning. */ +#define STACK_ALIGN 16 + +/* Minimal stack size after allocating thread descriptor and guard size. */ +#define MINIMAL_REST_STACK 2048 + +/* Alignment requirement for TCB. */ +#define TCB_ALIGNMENT 16 + + +/* Location of current stack frame. */ +#define CURRENT_STACK_FRAME (stack_pointer + (2 * 64)) +register char *stack_pointer __asm__("%sp"); diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c new file mode 100644 index 0000000000..c8edcb0c6d --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_init.c @@ -0,0 +1 @@ +#include <sysdeps/sparc/sparc64/nptl/pthread_spin_init.c> diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S new file mode 100644 index 0000000000..f2b898d3ad --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_lock.S @@ -0,0 +1 @@ +#include <sysdeps/sparc/sparc64/nptl/pthread_spin_lock.S> diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S new file mode 100644 index 0000000000..b324906220 --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_trylock.S @@ -0,0 +1 @@ +#include <sysdeps/sparc/sparc64/nptl/pthread_spin_trylock.S> diff --git a/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S new file mode 100644 index 0000000000..8c56ebe49f --- /dev/null +++ b/sysdeps/sparc/sparc32/sparcv9/nptl/pthread_spin_unlock.S @@ -0,0 +1 @@ +#include <sysdeps/sparc/sparc64/nptl/pthread_spin_unlock.S> |