Skip to content

Commit

Permalink
S390: Use __asm__ instead of asm.
Browse files Browse the repository at this point in the history
	* sysdeps/s390/fpu/bits/mathinline.h:
	Use __asm__ [__volatile__] instead of asm [volatile].
	* sysdeps/s390/abort-instr.h: Likewise.
	* sysdeps/s390/atomic-machine.h: Likewise.
	* sysdeps/s390/bits/string.h: Likewise.
	* sysdeps/s390/dl-tls.h: Likewise.
	* sysdeps/s390/fpu/e_sqrt.c: Likewise.
	* sysdeps/s390/fpu/e_sqrtf.c: Likewise.
	* sysdeps/s390/fpu/e_sqrtl.c: Likewise.
	* sysdeps/s390/fpu/fesetround.c: Likewise.
	* sysdeps/s390/fpu/fpu_control.h: Likewise.
	* sysdeps/s390/fpu/s_fma.c: Likewise.
	* sysdeps/s390/fpu/s_fmaf.c: Likewise.
	* sysdeps/s390/memusage.h: Likewise.
	* sysdeps/s390/multiarch/ifunc-resolve.h: Likewise.
	* sysdeps/s390/nptl/pthread_spin_lock.c: Likewise.
	* sysdeps/s390/nptl/pthread_spin_trylock.c: Likewise.
	* sysdeps/s390/nptl/pthread_spin_unlock.c: Likewise.
	* sysdeps/s390/nptl/tls.h: Likewise.
	* sysdeps/s390/s390-32/__longjmp.c: Likewise.
	* sysdeps/s390/s390-32/backtrace.c: Likewise.
	* sysdeps/s390/s390-32/dl-machine.h: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcmp.c: Likewise.
	* sysdeps/s390/s390-32/stackguard-macros.h: Likewise.
	* sysdeps/s390/s390-32/tls-macros.h: Likewise.
	* sysdeps/s390/s390-64/__longjmp.c: Likewise.
	* sysdeps/s390/s390-64/backtrace.c: Likewise.
	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
	* sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c: Likewise.
	* sysdeps/s390/s390-64/multiarch/memcmp.c: Likewise.
	* sysdeps/s390/s390-64/stackguard-macros.h: Likewise.
	* sysdeps/s390/s390-64/tls-macros.h: Likewise.
	* sysdeps/s390/s390-64/utf16-utf32-z9.c: Likewise.
	* sysdeps/s390/s390-64/utf8-utf16-z9.c: Likewise.
	* sysdeps/s390/s390-64/utf8-utf32-z9.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/brk.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/elision-trylock.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/sysconf.c: Likewise.
  • Loading branch information
Stefan Liebler authored and Andreas Krebbel committed Nov 20, 2015
1 parent 9695cb3 commit 31cf394
Show file tree
Hide file tree
Showing 42 changed files with 498 additions and 453 deletions.
45 changes: 45 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
2015-11-20 Stefan Liebler <stli@linux.vnet.ibm.com>

* sysdeps/s390/fpu/bits/mathinline.h:
Use __asm__ [__volatile__] instead of asm [volatile].
* sysdeps/s390/abort-instr.h: Likewise.
* sysdeps/s390/atomic-machine.h: Likewise.
* sysdeps/s390/bits/string.h: Likewise.
* sysdeps/s390/dl-tls.h: Likewise.
* sysdeps/s390/fpu/e_sqrt.c: Likewise.
* sysdeps/s390/fpu/e_sqrtf.c: Likewise.
* sysdeps/s390/fpu/e_sqrtl.c: Likewise.
* sysdeps/s390/fpu/fesetround.c: Likewise.
* sysdeps/s390/fpu/fpu_control.h: Likewise.
* sysdeps/s390/fpu/s_fma.c: Likewise.
* sysdeps/s390/fpu/s_fmaf.c: Likewise.
* sysdeps/s390/memusage.h: Likewise.
* sysdeps/s390/multiarch/ifunc-resolve.h: Likewise.
* sysdeps/s390/nptl/pthread_spin_lock.c: Likewise.
* sysdeps/s390/nptl/pthread_spin_trylock.c: Likewise.
* sysdeps/s390/nptl/pthread_spin_unlock.c: Likewise.
* sysdeps/s390/nptl/tls.h: Likewise.
* sysdeps/s390/s390-32/__longjmp.c: Likewise.
* sysdeps/s390/s390-32/backtrace.c: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-32/multiarch/memcmp.c: Likewise.
* sysdeps/s390/s390-32/stackguard-macros.h: Likewise.
* sysdeps/s390/s390-32/tls-macros.h: Likewise.
* sysdeps/s390/s390-64/__longjmp.c: Likewise.
* sysdeps/s390/s390-64/backtrace.c: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c: Likewise.
* sysdeps/s390/s390-64/multiarch/memcmp.c: Likewise.
* sysdeps/s390/s390-64/stackguard-macros.h: Likewise.
* sysdeps/s390/s390-64/tls-macros.h: Likewise.
* sysdeps/s390/s390-64/utf16-utf32-z9.c: Likewise.
* sysdeps/s390/s390-64/utf8-utf16-z9.c: Likewise.
* sysdeps/s390/s390-64/utf8-utf32-z9.c: Likewise.
* sysdeps/unix/sysv/linux/s390/brk.c: Likewise.
* sysdeps/unix/sysv/linux/s390/elision-trylock.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/s390/sysconf.c: Likewise.

2015-11-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Paul E. Murphy <murphyp@linux.vnet.ibm.com>

Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/abort-instr.h
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/* An op-code of 0 should crash any program. */
#define ABORT_INSTRUCTION asm (".word 0")
#define ABORT_INSTRUCTION __asm__ (".word 0")
42 changes: 21 additions & 21 deletions sysdeps/s390/atomic-machine.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,19 @@ typedef uintmax_t uatomic_max_t;
#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
({ __typeof (mem) __archmem = (mem); \
__typeof (*mem) __archold = (oldval); \
__asm __volatile ("cs %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
: "d" (newval), "m" (*__archmem) : "cc", "memory" ); \
__asm__ __volatile__ ("cs %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
: "d" (newval), "m" (*__archmem) : "cc", "memory" ); \
__archold; })

#ifdef __s390x__
# define __HAVE_64B_ATOMICS 1
# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
({ __typeof (mem) __archmem = (mem); \
__typeof (*mem) __archold = (oldval); \
__asm __volatile ("csg %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
: "d" ((long) (newval)), "m" (*__archmem) : "cc", "memory" ); \
__asm__ __volatile__ ("csg %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
: "d" ((long) (newval)), "m" (*__archmem) : "cc", "memory" ); \
__archold; })
#else
# define __HAVE_64B_ATOMICS 0
Expand All @@ -89,17 +89,17 @@ typedef uintmax_t uatomic_max_t;
__typeof (*(mem)) __atg5_oldval = *__atg5_memp; \
__typeof (*(mem)) __atg5_value = (newvalue); \
if (sizeof (*mem) == 4) \
__asm __volatile ("0: cs %0,%2,%1\n" \
" jl 0b" \
: "+d" (__atg5_oldval), "=Q" (*__atg5_memp) \
: "d" (__atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
__asm__ __volatile__ ("0: cs %0,%2,%1\n" \
" jl 0b" \
: "+d" (__atg5_oldval), "=Q" (*__atg5_memp) \
: "d" (__atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
else if (sizeof (*mem) == 8) \
__asm __volatile ("0: csg %0,%2,%1\n" \
" jl 0b" \
: "+d" ( __atg5_oldval), "=Q" (*__atg5_memp) \
: "d" ((long) __atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
__asm__ __volatile__ ("0: csg %0,%2,%1\n" \
" jl 0b" \
: "+d" ( __atg5_oldval), "=Q" (*__atg5_memp) \
: "d" ((long) __atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
else \
abort (); \
__atg5_oldval; })
Expand All @@ -109,11 +109,11 @@ typedef uintmax_t uatomic_max_t;
__typeof (*(mem)) __atg5_oldval = *__atg5_memp; \
__typeof (*(mem)) __atg5_value = (newvalue); \
if (sizeof (*mem) == 4) \
__asm __volatile ("0: cs %0,%2,%1\n" \
" jl 0b" \
: "+d" (__atg5_oldval), "=Q" (*__atg5_memp) \
: "d" (__atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
__asm__ __volatile__ ("0: cs %0,%2,%1\n" \
" jl 0b" \
: "+d" (__atg5_oldval), "=Q" (*__atg5_memp) \
: "d" (__atg5_value), "m" (*__atg5_memp) \
: "cc", "memory" ); \
else \
abort (); \
__atg5_oldval; })
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/bits/string.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ __strlen_g (const char *__str)
#ifndef _FORCE_INLINES
#define strcpy(dest, src) __strcpy_g ((dest), (src))

__STRING_INLINE char *__strcpy_g (char *, const char *) __asm ("strcpy");
__STRING_INLINE char *__strcpy_g (char *, const char *) __asm__ ("strcpy");

__STRING_INLINE char *
__strcpy_g (char *__dest, const char *__src)
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/s390/dl-tls.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ versioned_symbol (ld, __tls_get_addr_internal_tmp,
the thread descriptor instead of a pointer to the variable.
*/
# ifdef __s390x__
asm("\n\
__asm__("\n\
.text\n\
.globl __tls_get_offset\n\
.type __tls_get_offset, @function\n\
Expand All @@ -72,7 +72,7 @@ __tls_get_offset:\n\
jg __tls_get_addr\n\
");
# elif defined __s390__
asm("\n\
__asm__("\n\
.text\n\
.globl __tls_get_offset\n\
.type __tls_get_offset, @function\n\
Expand Down
6 changes: 3 additions & 3 deletions sysdeps/s390/fpu/bits/mathinline.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ __NTH (__ieee754_sqrt (double x))
{
double res;

asm ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
__asm__ ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
return res;
}

Expand All @@ -80,7 +80,7 @@ __NTH (__ieee754_sqrtf (float x))
{
float res;

asm ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
__asm__ ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
return res;
}

Expand All @@ -90,7 +90,7 @@ __NTH (sqrtl (long double __x))
{
long double res;

asm ( "sqxbr %0,%1" : "=f" (res) : "f" (__x) );
__asm__ ( "sqxbr %0,%1" : "=f" (res) : "f" (__x) );
return res;
}
# endif /* !__NO_LONG_DOUBLE_MATH */
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/fpu/e_sqrt.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ __ieee754_sqrt (double x)
{
double res;

asm ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
__asm__ ( "sqdbr %0,%1" : "=f" (res) : "f" (x) );
return res;
}
strong_alias (__ieee754_sqrt, __sqrt_finite)
2 changes: 1 addition & 1 deletion sysdeps/s390/fpu/e_sqrtf.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ __ieee754_sqrtf (float x)
{
float res;

asm ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
__asm__ ( "sqebr %0,%1" : "=f" (res) : "f" (x) );
return res;
}
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
2 changes: 1 addition & 1 deletion sysdeps/s390/fpu/e_sqrtl.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ __ieee754_sqrtl (long double x)
{
long double res;

asm ( "sqxbr %0,%1" : "=f" (res) : "f" (x) );
__asm__ ( "sqxbr %0,%1" : "=f" (res) : "f" (x) );
return res;
}
strong_alias (__ieee754_sqrtl, __sqrtl_finite)
6 changes: 3 additions & 3 deletions sysdeps/s390/fpu/fesetround.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ __fesetround (int round)
/* ROUND is not a valid rounding mode. */
return 1;
}
__asm__ volatile ("srnm 0(%0)"
:
: "a" (round));
__asm__ __volatile__ ("srnm 0(%0)"
:
: "a" (round));

return 0;
}
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/s390/fpu/fpu_control.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
typedef unsigned int fpu_control_t;

/* Macros for accessing the hardware control word. */
#define _FPU_GETCW(cw) __asm__ volatile ("efpc %0,0" : "=d" (cw))
#define _FPU_SETCW(cw) __asm__ volatile ("sfpc %0,0" : : "d" (cw))
#define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0,0" : "=d" (cw))
#define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0,0" : : "d" (cw))

/* Default control word set at startup. */
extern fpu_control_t __fpu_control;
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/fpu/s_fma.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ double
__fma (double x, double y, double z)
{
double r;
asm ("madbr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z));
__asm__ ("madbr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z));
return r;
}
#ifndef __fma
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/fpu/s_fmaf.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ float
__fmaf (float x, float y, float z)
{
float r;
asm ("maebr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z));
__asm__ ("maebr %0,%1,%2" : "=f" (r) : "%f" (x), "fR" (y), "0" (z));
return r;
}
#ifndef __fmaf
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/s390/memusage.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */

#define GETSP() ({ register uintptr_t stack_ptr asm ("15"); stack_ptr; })
#define GETSP() ({ register uintptr_t stack_ptr __asm__ ("15"); stack_ptr; })

#include <sysdeps/generic/memusage.h>
26 changes: 13 additions & 13 deletions sysdeps/s390/multiarch/ifunc-resolve.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,22 @@

#define S390_STORE_STFLE(STFLE_BITS) \
/* We want just 1 double word to be returned. */ \
register unsigned long reg0 asm("0") = 0; \
register unsigned long reg0 __asm__("0") = 0; \
\
asm volatile(".machine push" "\n\t" \
".machine \"z9-109\"" "\n\t" \
".machinemode \"zarch_nohighgprs\"\n\t" \
"stfle %0" "\n\t" \
".machine pop" "\n" \
: "=QS" (STFLE_BITS), "+d" (reg0) \
: : "cc");
__asm__ __volatile__(".machine push" "\n\t" \
".machine \"z9-109\"" "\n\t" \
".machinemode \"zarch_nohighgprs\"\n\t" \
"stfle %0" "\n\t" \
".machine pop" "\n" \
: "=QS" (STFLE_BITS), "+d" (reg0) \
: : "cc");

#define s390_libc_ifunc(FUNC) \
asm (".globl " #FUNC "\n\t" \
".type " #FUNC ",@gnu_indirect_function\n\t" \
".set " #FUNC ",__resolve_" #FUNC "\n\t" \
".globl __GI_" #FUNC "\n\t" \
".set __GI_" #FUNC "," #FUNC "\n"); \
__asm__ (".globl " #FUNC "\n\t" \
".type " #FUNC ",@gnu_indirect_function\n\t" \
".set " #FUNC ",__resolve_" #FUNC "\n\t" \
".globl __GI_" #FUNC "\n\t" \
".set __GI_" #FUNC "," #FUNC "\n"); \
\
/* Make the declarations of the optimized functions hidden in order
to prevent GOT slots being generated for them. */ \
Expand Down
10 changes: 5 additions & 5 deletions sysdeps/s390/nptl/pthread_spin_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ pthread_spin_lock (pthread_spinlock_t *lock)
{
int oldval;

__asm __volatile ("0: lhi %0,0\n"
" cs %0,%2,%1\n"
" jl 0b"
: "=&d" (oldval), "=Q" (*lock)
: "d" (1), "m" (*lock) : "cc" );
__asm__ __volatile__ ("0: lhi %0,0\n"
" cs %0,%2,%1\n"
" jl 0b"
: "=&d" (oldval), "=Q" (*lock)
: "d" (1), "m" (*lock) : "cc" );
return 0;
}
6 changes: 3 additions & 3 deletions sysdeps/s390/nptl/pthread_spin_trylock.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ pthread_spin_trylock (pthread_spinlock_t *lock)
{
int old;

__asm __volatile ("cs %0,%3,%1"
: "=d" (old), "=Q" (*lock)
: "0" (0), "d" (1), "m" (*lock) : "cc" );
__asm__ __volatile__ ("cs %0,%3,%1"
: "=d" (old), "=Q" (*lock)
: "0" (0), "d" (1), "m" (*lock) : "cc" );

return old != 0 ? EBUSY : 0;
}
6 changes: 3 additions & 3 deletions sysdeps/s390/nptl/pthread_spin_unlock.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
int
pthread_spin_unlock (pthread_spinlock_t *lock)
{
__asm __volatile (" xc %O0(4,%R0),%0\n"
" bcr 15,0"
: "=Q" (*lock) : "m" (*lock) : "cc" );
__asm__ __volatile__ (" xc %O0(4,%R0),%0\n"
" bcr 15,0"
: "=Q" (*lock) : "m" (*lock) : "cc" );
return 0;
}
strong_alias (pthread_spin_unlock, pthread_spin_init)
4 changes: 2 additions & 2 deletions sysdeps/s390/nptl/tls.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,9 @@ typedef struct

/* Set the stack guard field in TCB head. */
#define THREAD_SET_STACK_GUARD(value) \
do \
do \
{ \
__asm __volatile ("" : : : "a0", "a1"); \
__asm__ __volatile__ ("" : : : "a0", "a1"); \
THREAD_SETMEM (THREAD_SELF, header.stack_guard, value); \
} \
while (0)
Expand Down
Loading

0 comments on commit 31cf394

Please sign in to comment.