From: "H . J . Lu" <hjl@lucon.org>
To: linux-mips@oss.sgi.com, GNU C Library <libc-alpha@sources.redhat.com>
Subject: PATCH: Not use branch likely on mips
Date: Tue, 5 Feb 2002 18:02:43 -0800 [thread overview]
Message-ID: <20020205180243.A11993@lucon.org> (raw)
This patch removes branch likely.
H.J.
----
2002-02-05 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
branch likely.
* sysdeps/mips/pt-machine.h (testandset): Liekwise.
(__compare_and_swap): Liekwise.
2002-02-05 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/atomicity.h (exchange_and_add): Not use branch
likely.
(atomic_add): Likewise.
(compare_and_swap): Likewise.
* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set):
Likewise.
--- libc/linuxthreads/sysdeps/mips/pspinlock.c.llsc Mon Feb 4 13:45:01 2002
+++ libc/linuxthreads/sysdeps/mips/pspinlock.c Tue Feb 5 14:11:01 2002
@@ -32,17 +32,16 @@ __pthread_spin_lock (pthread_spinlock_t
unsigned int tmp1, tmp2;
asm volatile
- ("\t\t\t# spin_lock\n\t"
- "ll %1,%3\n"
+ ("\t\t\t# spin_lock\n"
"1:\n\t"
+ "ll %1,%3\n\t"
".set push\n\t"
".set noreorder\n\t"
"bnez %1,1b\n\t"
" li %2,1\n\t"
+ ".set pop\n\t"
"sc %2,%0\n\t"
- "beqzl %2,1b\n\t"
- " ll %1,%3\n\t"
- ".set pop"
+ "beqz %2,1b"
: "=m" (*lock), "=&r" (tmp1), "=&r" (tmp2)
: "m" (*lock)
: "memory");
--- libc/linuxthreads/sysdeps/mips/pt-machine.h.llsc Mon Feb 4 13:45:01 2002
+++ libc/linuxthreads/sysdeps/mips/pt-machine.h Tue Feb 5 14:01:11 2002
@@ -57,18 +57,17 @@ __compare_and_swap (long int *p, long in
long int ret, temp;
__asm__ __volatile__
- ("/* Inline compare & swap */\n\t"
- "ll %1,%5\n"
+ ("/* Inline compare & swap */\n"
"1:\n\t"
+ "ll %1,%5\n\t"
".set push\n\t"
".set noreorder\n\t"
"bne %1,%3,2f\n\t"
" move %0,$0\n\t"
+ ".set pop\n\t"
"move %0,%4\n\t"
"sc %0,%2\n\t"
- "beqzl %0,1b\n\t"
- " ll %1,%5\n\t"
- ".set pop\n"
+ "beqz %0,1b\n"
"2:\n\t"
"/* End compare & swap */"
: "=&r" (ret), "=&r" (temp), "=m" (*p)
--- libc/sysdeps/mips/atomicity.h.llsc Mon Feb 4 13:45:18 2002
+++ libc/sysdeps/mips/atomicity.h Tue Feb 5 13:58:59 2002
@@ -32,16 +32,12 @@ exchange_and_add (volatile uint32_t *mem
int result, tmp;
__asm__ __volatile__
- ("/* Inline exchange & add */\n\t"
- "ll %0,%3\n"
+ ("/* Inline exchange & add */\n"
"1:\n\t"
+ "ll %0,%3\n\t"
"addu %1,%4,%0\n\t"
"sc %1,%2\n\t"
- ".set push\n\t"
- ".set noreorder\n\t"
- "beqzl %1,1b\n\t"
- " ll %0,%3\n\t"
- ".set pop\n\t"
+ "beqz %1,1b\n\t"
"/* End exchange & add */"
: "=&r"(result), "=&r"(tmp), "=m"(*mem)
: "m" (*mem), "r"(val)
@@ -57,16 +53,12 @@ atomic_add (volatile uint32_t *mem, int
int result;
__asm__ __volatile__
- ("/* Inline atomic add */\n\t"
- "ll %0,%2\n"
+ ("/* Inline atomic add */\n"
"1:\n\t"
+ "ll %0,%2\n\t"
"addu %0,%3,%0\n\t"
"sc %0,%1\n\t"
- ".set push\n\t"
- ".set noreorder\n\t"
- "beqzl %0,1b\n\t"
- " ll %0,%2\n\t"
- ".set pop\n\t"
+ "beqz %0,1b\n\t"
"/* End atomic add */"
: "=&r"(result), "=m"(*mem)
: "m" (*mem), "r"(val)
@@ -80,18 +72,17 @@ compare_and_swap (volatile long int *p,
long int ret, temp;
__asm__ __volatile__
- ("/* Inline compare & swap */\n\t"
- "ll %1,%5\n"
+ ("/* Inline compare & swap */\n"
"1:\n\t"
+ "ll %1,%5\n\t"
".set push\n\t"
".set noreorder\n\t"
"bne %1,%3,2f\n\t"
" move %0,$0\n\t"
+ ".set pop\n\t"
"move %0,%4\n\t"
"sc %0,%2\n\t"
- "beqzl %0,1b\n\t"
- " ll %1,%5\n\t"
- ".set pop\n"
+ "beqz %0,1b\n"
"2:\n\t"
"/* End compare & swap */"
: "=&r" (ret), "=&r" (temp), "=m" (*p)
--- libc/sysdeps/unix/sysv/linux/mips/sys/tas.h.llsc Mon Feb 4 13:45:28 2002
+++ libc/sysdeps/unix/sysv/linux/mips/sys/tas.h Tue Feb 5 13:59:52 2002
@@ -42,17 +42,16 @@ _test_and_set (int *p, int v) __THROW
int r, t;
__asm__ __volatile__
- ("/* Inline test and set */\n\t"
- "ll %0,%3\n"
+ ("/* Inline test and set */\n"
"1:\n\t"
+ "ll %0,%3\n\t"
".set push\n\t"
".set noreorder\n\t"
"beq %0,%4,2f\n\t"
" move %1,%4\n\t"
+ ".set pop\n\t"
"sc %1,%2\n\t"
- "beqzl %1,1b\n\t"
- " ll %0,%3\n\t"
- ".set pop\n"
+ "beqz %1,1b\n"
"2:\n\t"
"/* End test and set */"
: "=&r" (r), "=&r" (t), "=m" (*p)
next reply other threads:[~2002-02-06 2:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-06 2:02 H . J . Lu [this message]
2002-02-07 10:38 ` PATCH: Not use branch likely on mips Andreas Jaeger
2002-02-07 17:13 ` H . J . Lu
2002-02-08 8:00 ` Andreas Jaeger
2002-02-08 12:03 ` Maciej W. Rozycki
2002-02-08 16:15 ` Andreas Jaeger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020205180243.A11993@lucon.org \
--to=hjl@lucon.org \
--cc=libc-alpha@sources.redhat.com \
--cc=linux-mips@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox