author | "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com> |
Fri May 25 19:09:43 2012 +0200 (2012-05-25) | |
changeset 2989 | 6aa743f87695 |
permissions | -rw-r--r-- |
1 ripped from Debian
3 the R10000 needs an LL/SC Workaround. If not applied all R10k before
4 rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28)
5 die after very few seconds with a deadlock due to even more erratas.
7 ports/sysdeps/mips/bits/atomic.h | 12 ++++++------
8 1 file changed, 6 insertions(+), 6 deletions(-)
10 diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h
11 --- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-05-16 10:36:20.000000000 +0200
12 +++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-11-13 00:51:34.000000000 +0100
13 @@ -74,7 +74,7 @@
14 "bne %0,%2,2f\n\t" \
15 "move %1,%3\n\t" \
16 "sc %1,%4\n\t" \
17 - "beqz %1,1b\n" \
18 + "beqzl %1,1b\n" \
19 acq "\n\t" \
20 ".set pop\n" \
21 "2:\n\t" \
22 @@ -98,7 +98,7 @@
23 "bne %0,%2,2f\n\t" \
24 "move %1,%3\n\t" \
25 "scd %1,%4\n\t" \
26 - "beqz %1,1b\n" \
27 + "beqzl %1,1b\n" \
28 acq "\n\t" \
29 ".set pop\n" \
30 "2:\n\t" \
31 @@ -192,7 +192,7 @@
32 "ll %0,%3\n\t" \
33 "move %1,%2\n\t" \
34 "sc %1,%3\n\t" \
35 - "beqz %1,1b\n" \
36 + "beqzl %1,1b\n" \
37 acq "\n\t" \
38 ".set pop\n" \
39 "2:\n\t" \
40 @@ -216,7 +216,7 @@
41 "lld %0,%3\n\t" \
42 "move %1,%2\n\t" \
43 "scd %1,%3\n\t" \
44 - "beqz %1,1b\n" \
45 + "beqzl %1,1b\n" \
46 acq "\n\t" \
47 ".set pop\n" \
48 "2:\n\t" \
49 @@ -251,7 +251,7 @@
50 "ll %0,%3\n\t" \
51 "addu %1,%0,%2\n\t" \
52 "sc %1,%3\n\t" \
53 - "beqz %1,1b\n" \
54 + "beqzl %1,1b\n" \
55 acq "\n\t" \
56 ".set pop\n" \
57 "2:\n\t" \
58 @@ -275,7 +275,7 @@
59 "lld %0,%3\n\t" \
60 "daddu %1,%0,%2\n\t" \
61 "scd %1,%3\n\t" \
62 - "beqz %1,1b\n" \
63 + "beqzl %1,1b\n" \
64 acq "\n\t" \
65 ".set pop\n" \
66 "2:\n\t" \
67 diff -durN glibc-2.10.1.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.10.1/ports/sysdeps/mips/bits/atomic.h