mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-26 07:51:06 +00:00
68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
|
ripped from Debian
|
||
|
|
||
|
the R10000 needs an LL/SC Workaround. If not applied all R10k before
|
||
|
rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28)
|
||
|
die after very few seconds with a deadlock due to even more erratas.
|
||
|
|
||
|
ports/sysdeps/mips/bits/atomic.h | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
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
|
||
|
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-05-16 10:36:20.000000000 +0200
|
||
|
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-11-13 00:51:34.000000000 +0100
|
||
|
@@ -74,7 +74,7 @@
|
||
|
"bne %0,%2,2f\n\t" \
|
||
|
"move %1,%3\n\t" \
|
||
|
"sc %1,%4\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
@@ -98,7 +98,7 @@
|
||
|
"bne %0,%2,2f\n\t" \
|
||
|
"move %1,%3\n\t" \
|
||
|
"scd %1,%4\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
@@ -192,7 +192,7 @@
|
||
|
"ll %0,%3\n\t" \
|
||
|
"move %1,%2\n\t" \
|
||
|
"sc %1,%3\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
@@ -216,7 +216,7 @@
|
||
|
"lld %0,%3\n\t" \
|
||
|
"move %1,%2\n\t" \
|
||
|
"scd %1,%3\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
@@ -251,7 +251,7 @@
|
||
|
"ll %0,%3\n\t" \
|
||
|
"addu %1,%0,%2\n\t" \
|
||
|
"sc %1,%3\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
@@ -275,7 +275,7 @@
|
||
|
"lld %0,%3\n\t" \
|
||
|
"daddu %1,%0,%2\n\t" \
|
||
|
"scd %1,%3\n\t" \
|
||
|
- "beqz %1,1b\n" \
|
||
|
+ "beqzl %1,1b\n" \
|
||
|
acq "\n\t" \
|
||
|
".set pop\n" \
|
||
|
"2:\n\t" \
|
||
|
diff -durN glibc-2.10.1.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.10.1/ports/sysdeps/mips/bits/atomic.h
|