1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

Update the asm statements to use the "+" modifier instead of

matching constraints where appropriate.  This makes the dynamic
linker buildable at -O0 again.

Thanks to Bruce Evans for identifying the cause of the build
problem.

MFC after:	1 week
This commit is contained in:
John Polstra 2002-06-24 23:19:18 +00:00
parent e4e93c612e
commit d1c02bccdc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=98786
4 changed files with 16 additions and 16 deletions

View File

@ -80,8 +80,8 @@ cmpxchgl(int old, int new, volatile int *m)
int result;
__asm __volatile ("lock; cmpxchgl %2, %0"
: "=m"(*m), "=a"(result)
: "r"(new), "0"(*m), "1"(old)
: "+m"(*m), "=a"(result)
: "r"(new), "1"(old)
: "cc");
return result;
@ -93,8 +93,8 @@ xchgl(int v, volatile int *m)
int result;
__asm __volatile ("xchgl %0, %1"
: "=r"(result), "=m"(*m)
: "0"(v), "1"(*m));
: "=r"(result), "+m"(*m)
: "0"(v));
return result;
}

View File

@ -55,21 +55,21 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target,
static inline void
atomic_decr_int(volatile int *p)
{
__asm __volatile ("lock; decl %0" : "=m"(*p) : "0"(*p) : "cc");
__asm __volatile ("lock; decl %0" : "+m"(*p) : : "cc");
}
static inline void
atomic_incr_int(volatile int *p)
{
__asm __volatile ("lock; incl %0" : "=m"(*p) : "0"(*p) : "cc");
__asm __volatile ("lock; incl %0" : "+m"(*p) : : "cc");
}
static inline void
atomic_add_int(volatile int *p, int val)
{
__asm __volatile ("lock; addl %1, %0"
: "=m"(*p)
: "ri"(val), "0"(*p)
: "+m"(*p)
: "ri"(val)
: "cc");
}

View File

@ -80,8 +80,8 @@ cmpxchgl(int old, int new, volatile int *m)
int result;
__asm __volatile ("lock; cmpxchgl %2, %0"
: "=m"(*m), "=a"(result)
: "r"(new), "0"(*m), "1"(old)
: "+m"(*m), "=a"(result)
: "r"(new), "1"(old)
: "cc");
return result;
@ -93,8 +93,8 @@ xchgl(int v, volatile int *m)
int result;
__asm __volatile ("xchgl %0, %1"
: "=r"(result), "=m"(*m)
: "0"(v), "1"(*m));
: "=r"(result), "+m"(*m)
: "0"(v));
return result;
}

View File

@ -55,21 +55,21 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target,
static inline void
atomic_decr_int(volatile int *p)
{
__asm __volatile ("lock; decl %0" : "=m"(*p) : "0"(*p) : "cc");
__asm __volatile ("lock; decl %0" : "+m"(*p) : : "cc");
}
static inline void
atomic_incr_int(volatile int *p)
{
__asm __volatile ("lock; incl %0" : "=m"(*p) : "0"(*p) : "cc");
__asm __volatile ("lock; incl %0" : "+m"(*p) : : "cc");
}
static inline void
atomic_add_int(volatile int *p, int val)
{
__asm __volatile ("lock; addl %1, %0"
: "=m"(*p)
: "ri"(val), "0"(*p)
: "+m"(*p)
: "ri"(val)
: "cc");
}