Make regtest work back again.
1 2000-03-15 Cristian Gafton <gafton@redhat.com>
3 * db2/mutex/alpha.gcc (TSL_SET): Backport from db3.
4 * sysdeps/alpha/Makefile (CPPFLAGS): Define for db2 directory.
5 * db2/mutex/mutex.c: Include alpha.gcc ifdef HAVE_ASSEM_ALPHA_GCC.
7 2000-03-14 Ulrich Drepper <drepper@redhat.com>
9 * sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
10 Nautilus. Patch by Soohoon Lee <soohoon.lee@alpha-processor.com>.
12 --- glibc-2.1.3-15/db2/mutex/alpha.gcc Wed Aug 27 15:32:54 1997
13 +++ glibc-2.1.3-16/db2/mutex/alpha.gcc Wed Mar 15 16:50:45 2000
16 - * @(#)alpha.gcc 10.1 (Sleepycat) 4/12/97
18 - * The code appearing below is taken from Richard L. Sites, ed. "Alpha
19 - * Architecture Reference Manual", Digital Press, 1992, page 5-7 and 5-8.
20 - * There are 2 modifications:
22 - * 1. The jump from blbs __r1,30f to !__r1, which is dictated by the way the
23 - * TSL_SET macro is used. The code suggested in Sites includes the main loop
24 - * of the spin lock, whereas in this code the rest the loop is specified in C.
25 - * The generated code might be suboptimal if the compiler generates a forward
26 - * branch for the usual case in which the mutex is uncontested.
28 - * 2. At label 20, Sites suggests including code for testing for an excessive
29 - * number of _processor_ lock conflicts. (The seq_c instruction stores its
30 - * first argument provided that no other processor has written to a byte range
31 - * including its memory-location argument.) Absent such checking the code
32 - * below could conceivably stall silently on a multiprocessor alpha, depending
33 - * on how often processor/processor conflicts occur in a particular byte range.
35 - * Note that the mb ("memory-barrier") instruction in TSL_UNSET is critical to
36 - * correct operation in a multiprocessor alpha (as is, of course, the mb in
37 - * the TSL_SET macro). Without the mb, changes to shared memory that occurred
38 - * inside the critical section (before the TSL_UNSET) might reach shared memory
39 - * _after_ the change of tsl to 0, thereby permitting another processor to see
40 - * an inconsistent view of the data protected by the mutex.
41 + * @(#)alpha.gcc 11.1 (Sleepycat) 8/30/99
43 * For gcc/alpha, 0 is clear, 1 is set.
45 -#define TSL_SET(tsl) ({ \
47 +#define TSL_SET(tsl) ({ \
48 register tsl_t *__l = (tsl); \
49 - register tsl_t __r1, __r2; \
50 - __asm__ volatile(" \n\
51 - 10: ldq_l %0,(%2) \n\
60 - : "=&r" (__r1), "=&r" (__r2) \
65 + "1: ldl_l %0,%1\n" \
72 + : "=&r"(__r), "=m"(*__l) : "m"(*__l) : "memory"); \
77 -#define TSL_UNSET(tsl) ({ \
78 - register tsl_t *__l = (tsl); \
79 - __asm__ volatile("mb; stq $31,(%0);" : : "r" (__l)); \
81 +#define TSL_UNSET(tsl) (*(tsl) = 0)
82 #define TSL_INIT(tsl) TSL_UNSET(tsl)
83 --- glibc-2.1.3-15/db2/mutex/mutex.c Wed Jun 30 11:51:07 1999
84 +++ glibc-2.1.3-16/db2/mutex/mutex.c Wed Mar 15 16:50:45 2000
85 @@ -86,6 +86,10 @@ static const char sccsid[] = "@(#)mutex.
89 +#ifdef HAVE_ASSEM_ALPHA_GCC
93 #ifdef HAVE_ASSEM_UTS4_CC
95 #define TSL_SET(x) (!uts_lock(x, 1))
96 --- glibc-2.1.3-15/sysdeps/alpha/Makefile Thu Jul 9 14:52:03 1998
97 +++ glibc-2.1.3-16/sysdeps/alpha/Makefile Wed Mar 15 16:50:45 2000
99 # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
100 # Boston, MA 02111-1307, USA.
102 +ifeq ($(subdir),db2)
103 +CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_ALPHA_GCC=1
106 ifeq ($(subdir),gmon)
107 sysdep_routines += _mcount
109 --- glibc-2.1.3-15/sysdeps/unix/sysv/linux/alpha/ioperm.c Mon Oct 11 10:25:24 1999
110 +++ glibc-2.1.3-16/sysdeps/unix/sysv/linux/alpha/ioperm.c Wed Mar 15 11:57:14 2000
112 -/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
113 +/* Copyright (C) 1992, 1996-1999, 2000 Free Software Foundation, Inc.
114 This file is part of the GNU C Library.
115 Contributed by David Mosberger.
117 @@ -139,6 +139,7 @@ static struct platform {
118 {"Sable", IOSYS_CPUDEP},
119 {"Miata", IOSYS_CIA},
120 {"Tsunami", IOSYS_TSUNAMI},
121 + {"Nautilus", IOSYS_TSUNAMI},
122 {"Rawhide", IOSYS_MCPCIA},
123 {"Ruffian", IOSYS_CIA},
124 {"Takara", IOSYS_CIA},