Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}.

This commit is contained in:
Marek Polacek 2012-08-02 21:04:29 +02:00
parent 2747bf9adf
commit b67e9372b2
70 changed files with 301 additions and 321 deletions

View file

@ -1,3 +1,84 @@
2012-08-02 Marek Polacek <polacek@redhat.com>
[BZ#14150]
* configure.in (libc_cv_asm_type_prefix): Remove test. Replace
libc_cv_asm_type_prefix with %.
* configure: Regenerated.
* include/libc-symbols.h: Remove comment about ASM_TYPE_DIRECTIVE_PREFIX.
Replace ASM_TYPE_DIRECTIVE_PREFIX with %.
(declare_symbol_alias_1_paste) [__ASSEMBLER__]: Do not define.
(declare_symbol_alias_1_paste_1) [__ASSEMBLER__]: Likewise.
(declare_symbol_alias_1_stringify) [!__ASSEMBLER__]: Likewise.
(declare_symbol_alias_1_stringify_1) [!__ASSEMBLER__]: Likewise.
* elf/tst-unique2mod2.c: Replace ASM_TYPE_DIRECTIVE_PREFIX with %.
[HAVE_ASM_UNIQUE_OBJECT]: Do not define S.
[HAVE_ASM_UNIQUE_OBJECT]: Do not define _S.
* elf/tst-unique2mod1.c: Likewise.
* elf/tst-unique1mod2.c: Likewise.
* elf/tst-unique1mod1.c: Likewise.
* config.h.in: Do not undef ASM_TYPE_DIRECTIVE_PREFIX.
* sysdeps/s390/s390-32/sysdep.h: Do not define ASM_TYPE_DIRECTIVE.
Replace ASM_TYPE_DIRECTIVE with .type.
* sysdeps/s390/s390-64/sysdep.h: Likewise.
* sysdeps/i386/sysdep.h: Likewise.
* sysdeps/x86_64/sysdep.h: Likewise.
* sysdeps/sh/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Do not define ASM_TYPE_DIRECTIVE.
* sysdeps/powerpc/sysdep.h: Likewise.
* sysdeps/powerpc/powerpc32/sysdep.h: Replace ASM_TYPE_DIRECTIVE with .type.
* sysdeps/s390/s390-32/s390-mcount.S: Likewise.
* sysdeps/s390/s390-64/s390x-mcount.S: Likewise.
* sysdeps/i386/fpu/e_powf.S: Likewise.
* sysdeps/i386/fpu/e_expl.S: Likewise.
* sysdeps/i386/fpu/e_atanhf.S: Likewise.
* sysdeps/i386/fpu/e_acosh.S: Likewise.
* sysdeps/i386/fpu/e_pow.S: Likewise.
* sysdeps/i386/fpu/s_asinhl.S: Likewise.
* sysdeps/i386/fpu/e_acoshl.S: Likewise.
* sysdeps/i386/fpu/s_expm1.S: Likewise.
* sysdeps/i386/fpu/s_frexpf.S: Likewise.
* sysdeps/i386/fpu/e_log2.S: Likewise.
* sysdeps/i386/fpu/e_log2l.S: Likewise.
* sysdeps/i386/fpu/e_scalb.S: Likewise.
* sysdeps/i386/fpu/e_powl.S: Likewise.
* sysdeps/i386/fpu/e_log10f.S: Likewise.
* sysdeps/i386/fpu/s_cbrtf.S: Likewise.
* sysdeps/i386/fpu/e_logl.S: Likewise.
* sysdeps/i386/fpu/s_cbrt.S: Likewise.
* sysdeps/i386/fpu/s_frexpl.S: Likewise.
* sysdeps/i386/fpu/s_expm1f.S: Likewise.
* sysdeps/i386/fpu/e_log2f.S: Likewise.
* sysdeps/i386/fpu/e_acoshf.S: Likewise.
* sysdeps/i386/fpu/e_log.S: Likewise.
* sysdeps/i386/fpu/e_scalbf.S: Likewise.
* sysdeps/i386/fpu/e_logf.S: Likewise.
* sysdeps/i386/fpu/e_log10l.S: Likewise.
* sysdeps/i386/fpu/e_atanh.S: Likewise.
* sysdeps/i386/fpu/s_asinhf.S: Likewise.
* sysdeps/i386/fpu/e_log10.S: Likewise.
* sysdeps/i386/fpu/s_frexp.S: Likewise.
* sysdeps/i386/fpu/e_atanhl.S: Likewise.
* sysdeps/i386/fpu/s_asinh.S: Likewise.
* sysdeps/i386/fpu/s_cbrtl.S: Likewise.
* sysdeps/i386/fpu/e_scalbl.S: Likewise.
* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
* sysdeps/i386/i686/fpu/e_logl.S: Likewise.
* sysdeps/i386/i686/strtok.S: Likewise.
* sysdeps/i386/i386-mcount.S: Likewise.
* sysdeps/i386/strtok.S: Likewise.
* sysdeps/x86_64/fpu/e_expl.S: Likewise.
* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
* sysdeps/x86_64/fpu/e_powl.S: Likewise.
* sysdeps/x86_64/fpu/e_logl.S: Likewise.
* sysdeps/x86_64/fpu/e_expf.S: Likewise.
* sysdeps/x86_64/fpu/e_log10l.S: Likewise.
* sysdeps/x86_64/fpu/s_copysignf.S: Likewise.
* sysdeps/x86_64/fpu/s_copysign.S: Likewise.
* sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
* sysdeps/x86_64/_mcount.S: Likewise.
* sysdeps/x86_64/strtok.S: Likewise.
* sysdeps/sh/_mcount.S: Likewise.
2012-08-01 Roland McGrath <roland@hack.frob.com>
* libio/iofopen.c: Include <fcntl.h>.

4
NEWS
View file

@ -9,8 +9,8 @@ Version 2.17
* The following bugs are resolved with this release:
6778, 6808, 14042, 14151, 14154, 14157, 14173, 14283, 14298, 14328, 14331,
14337, 14347, 14349
6778, 6808, 14042, 14150, 14151, 14154, 14157, 14173, 14283, 14298, 14328,
14331, 14337, 14347, 14349
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
Optimized versions of memcpy, memset, and memcmp added for System z10 and

View file

@ -37,10 +37,6 @@
/* Define if the assembler supports the `.set' directive. */
#undef HAVE_ASM_SET_DIRECTIVE
/* Define to the prefix before `object' or `function' in the
assembler's `.type' directive, if it has one. */
#undef ASM_TYPE_DIRECTIVE_PREFIX
/* Define if the assembler supports the gnu_unique_object symbol type. */
#undef HAVE_ASM_UNIQUE_OBJECT

40
configure vendored
View file

@ -4076,43 +4076,7 @@ else
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler .type directive prefix" >&5
$as_echo_n "checking for assembler .type directive prefix... " >&6; }
if ${libc_cv_asm_type_prefix+:} false; then :
$as_echo_n "(cached) " >&6
else
libc_cv_asm_type_prefix=no
for ac_try_prefix in '@' '%' '#'; do
cat > conftest.s <<EOF
${libc_cv_dot_text}
.globl foo
.type foo, ${ac_try_prefix}object
.size foo, 1
foo:
.byte 1
EOF
if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_asm_type_prefix=${ac_try_prefix}
fi
rm -f conftest*
test "x$libc_cv_asm_type_prefix" != xno && break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_type_prefix" >&5
$as_echo "$libc_cv_asm_type_prefix" >&6; }
if test "x$libc_cv_asm_type_prefix" != xno; then
cat >>confdefs.h <<_ACEOF
#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix}
_ACEOF
fi
if test x"$libc_cv_asm_gnu_indirect_function" != xyes -o x"$libc_cv_asm_type_prefix" = xno; then
if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
if test x"$multi_arch" = xyes; then
as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
else
@ -5728,7 +5692,7 @@ else
cat > conftest.s <<EOF
${libc_cv_dot_text}
_sym:
.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
.type _sym, %gnu_unique_object
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
libc_cv_asm_unique_object=yes

View file

@ -581,29 +581,7 @@ else
AC_MSG_RESULT(yes)
fi
AC_CACHE_CHECK(for assembler .type directive prefix,
libc_cv_asm_type_prefix, [dnl
libc_cv_asm_type_prefix=no
for ac_try_prefix in '@' '%' '#'; do
cat > conftest.s <<EOF
${libc_cv_dot_text}
.globl foo
.type foo, ${ac_try_prefix}object
.size foo, 1
foo:
.byte 1
EOF
if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_asm_type_prefix=${ac_try_prefix}
fi
rm -f conftest*
test "x$libc_cv_asm_type_prefix" != xno && break
done])
if test "x$libc_cv_asm_type_prefix" != xno; then
AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
fi
if test x"$libc_cv_asm_gnu_indirect_function" != xyes -o x"$libc_cv_asm_type_prefix" = xno; then
if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
if test x"$multi_arch" = xyes; then
AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
else
@ -1125,7 +1103,7 @@ AC_CACHE_CHECK(for assembler gnu_unique_object symbol type,
cat > conftest.s <<EOF
${libc_cv_dot_text}
_sym:
.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
.type _sym, %gnu_unique_object
EOF
if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
libc_cv_asm_unique_object=yes

View file

@ -1,12 +1,9 @@
#include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
# define S(s) _S (s)
# define _S(s) #s
asm (".data;"
".globl var\n"
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
".type var, %gnu_unique_object\n"
".size var, 4\n"
"var:.zero 4\n"
".previous");

View file

@ -1,12 +1,9 @@
#include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
# define S(s) _S (s)
# define _S(s) #s
asm (".data;"
".globl var\n"
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
".type var, %gnu_unique_object\n"
".size var, 4\n"
"var:.zero 4\n"
".previous");

View file

@ -1,12 +1,9 @@
#include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
# define S(s) _S (s)
# define _S(s) #s
asm (".data;"
".globl var\n"
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
".type var, %gnu_unique_object\n"
".size var, 4\n"
"var:.zero 4\n"
".previous");

View file

@ -1,12 +1,9 @@
#include <config.h>
#ifdef HAVE_ASM_UNIQUE_OBJECT
# define S(s) _S (s)
# define _S(s) #s
asm (".data;"
".globl var\n"
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
".type var, %gnu_unique_object\n"
".size var, 4\n"
"var:.zero 4\n"
".previous");

View file

@ -27,8 +27,6 @@
It should define for us the following symbols:
* HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'.
* ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type,
or leave it undefined if there is no .type directive.
* HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
* HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
@ -252,37 +250,26 @@ for linking")
thinks it is. */
#define declare_symbol_alias(symbol, original, type, size) \
declare_symbol_alias_1 (symbol, original, type, size)
#ifdef ASM_TYPE_DIRECTIVE_PREFIX
# ifdef __ASSEMBLER__
# define declare_symbol_alias_1(symbol, original, type, size) \
strong_alias (original, symbol); \
.type C_SYMBOL_NAME (symbol), \
declare_symbol_alias_1_paste (ASM_TYPE_DIRECTIVE_PREFIX, type); \
.size C_SYMBOL_NAME (symbol), size
# define declare_symbol_alias_1_paste(a, b) \
declare_symbol_alias_1_paste_1 (a,b)
# define declare_symbol_alias_1_paste_1(a,b) a##b
# else /* Not __ASSEMBLER__. */
# define declare_symbol_alias_1(symbol, original, type, size) \
asm (".globl " __SYMBOL_PREFIX #symbol \
"\n\t" declare_symbol_alias_1_alias (symbol, original) \
"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
declare_symbol_alias_1_stringify (ASM_TYPE_DIRECTIVE_PREFIX) #type \
"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
# define declare_symbol_alias_1_stringify(x) \
declare_symbol_alias_1_stringify_1 (x)
# define declare_symbol_alias_1_stringify_1(x) #x
# ifdef HAVE_ASM_SET_DIRECTIVE
# define declare_symbol_alias_1_alias(symbol, original) \
".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
# else
# define declare_symbol_alias_1_alias(symbol, original) \
__SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
# endif /* HAVE_ASM_SET_DIRECTIVE */
# endif /* __ASSEMBLER__ */
#else
# define declare_symbol_1(symbol, type, size) /* Nothing. */
#endif
#ifdef __ASSEMBLER__
# define declare_symbol_alias_1(symbol, original, type, size) \
strong_alias (original, symbol); \
.type C_SYMBOL_NAME (symbol), %##type; \
.size C_SYMBOL_NAME (symbol), size
#else /* Not __ASSEMBLER__. */
# define declare_symbol_alias_1(symbol, original, type, size) \
asm (".globl " __SYMBOL_PREFIX #symbol \
"\n\t" declare_symbol_alias_1_alias (symbol, original) \
"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
"%" #type \
"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
# ifdef HAVE_ASM_SET_DIRECTIVE
# define declare_symbol_alias_1_alias(symbol, original) \
".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
# else
# define declare_symbol_alias_1_alias(symbol, original) \
__SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
# endif /* HAVE_ASM_SET_DIRECTIVE */
#endif /* __ASSEMBLER__ */
/*

View file

@ -22,10 +22,10 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -22,10 +22,10 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -25,13 +25,13 @@
/* Please note that we use double value for 1.0. This number
has an exact representation and so we don't get accuracy
problems. The advantage is that the code is simpler. */
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -22,16 +22,16 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(half,@object)
.type half,@object
half: .double 0.5
ASM_SIZE_DIRECTIVE(half)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
ASM_TYPE_DIRECTIVE(ln2_2,@object)
.type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160
ASM_SIZE_DIRECTIVE(ln2_2)

View file

@ -22,17 +22,17 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(half,@object)
.type half,@object
half: .double 0.5
ASM_SIZE_DIRECTIVE(half)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(ln2_2,@object)
.type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160
ASM_SIZE_DIRECTIVE(ln2_2)

View file

@ -25,20 +25,20 @@
/* Please note that we use double values for 0.5 and 1.0. These
numbers have exact representations and so we don't get accuracy
problems. The advantage is that the code is simpler. */
ASM_TYPE_DIRECTIVE(half,@object)
.type half,@object
half: .double 0.5
ASM_SIZE_DIRECTIVE(half)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(ln2_2,@object)
.type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160
ASM_SIZE_DIRECTIVE(ln2_2)

View file

@ -42,26 +42,26 @@
.p2align 4
#ifdef USE_AS_EXP10L
ASM_TYPE_DIRECTIVE(c0,@object)
.type c0,@object
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c0)
ASM_TYPE_DIRECTIVE(c1,@object)
.type c1,@object
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c1)
#else
ASM_TYPE_DIRECTIVE(c0,@object)
.type c0,@object
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c0)
ASM_TYPE_DIRECTIVE(c1,@object)
.type c1,@object
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c1)
#endif
#ifndef USE_AS_EXPM1L
ASM_TYPE_DIRECTIVE(csat,@object)
.type csat,@object
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(csat)

View file

@ -10,13 +10,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -10,13 +10,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -12,13 +12,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -11,13 +11,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -23,31 +23,31 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
ASM_TYPE_DIRECTIVE(p63,@object)
.type p63,@object
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
ASM_SIZE_DIRECTIVE(p63)
ASM_TYPE_DIRECTIVE(p10,@object)
.type p10,@object
p10: .byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
ASM_SIZE_DIRECTIVE(p10)
.section .rodata.cst16,"aM",@progbits,16
.p2align 3
ASM_TYPE_DIRECTIVE(infinity,@object)
.type infinity,@object
inf_zero:
infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
ASM_SIZE_DIRECTIVE(infinity)
ASM_TYPE_DIRECTIVE(zero,@object)
.type zero,@object
zero: .double 0.0
ASM_SIZE_DIRECTIVE(zero)
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
.type minf_mzero,@object
minf_mzero:
minfinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff

View file

@ -23,28 +23,28 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
ASM_TYPE_DIRECTIVE(p31,@object)
.type p31,@object
p31: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
ASM_SIZE_DIRECTIVE(p31)
.section .rodata.cst16,"aM",@progbits,16
.p2align 3
ASM_TYPE_DIRECTIVE(infinity,@object)
.type infinity,@object
inf_zero:
infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
ASM_SIZE_DIRECTIVE(infinity)
ASM_TYPE_DIRECTIVE(zero,@object)
.type zero,@object
zero: .double 0.0
ASM_SIZE_DIRECTIVE(zero)
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
.type minf_mzero,@object
minf_mzero:
minfinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff

View file

@ -23,34 +23,34 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
ASM_TYPE_DIRECTIVE(p63,@object)
.type p63,@object
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
ASM_SIZE_DIRECTIVE(p63)
ASM_TYPE_DIRECTIVE(p64,@object)
.type p64,@object
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
ASM_SIZE_DIRECTIVE(p64)
ASM_TYPE_DIRECTIVE(p78,@object)
.type p78,@object
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
ASM_SIZE_DIRECTIVE(p78)
.section .rodata.cst16,"aM",@progbits,16
.p2align 3
ASM_TYPE_DIRECTIVE(infinity,@object)
.type infinity,@object
inf_zero:
infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
ASM_SIZE_DIRECTIVE(infinity)
ASM_TYPE_DIRECTIVE(zero,@object)
.type zero,@object
zero: .double 0.0
ASM_SIZE_DIRECTIVE(zero)
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
.type minf_mzero,@object
minf_mzero:
minfinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff

View file

@ -10,7 +10,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(zero_nan,@object)
.type zero_nan,@object
zero_nan:
.double 0.0
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f

View file

@ -11,7 +11,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(zero_nan,@object)
.type zero_nan,@object
zero_nan:
.double 0.0
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f

View file

@ -12,7 +12,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(zero_nan,@object)
.type zero_nan,@object
zero_nan:
.double 0.0
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f

View file

@ -22,13 +22,13 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(huge,@object)
.type huge,@object
huge: .double 1e+300
ASM_SIZE_DIRECTIVE(huge)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -22,13 +22,13 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(huge,@object)
.type huge,@object
huge: .double 1e+36
ASM_SIZE_DIRECTIVE(huge)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -22,20 +22,20 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(huge,@object)
.type huge,@object
huge: .tfloat 1e+4930
ASM_SIZE_DIRECTIVE(huge)
.align ALIGNARG(4)
/* Please note that we use double value for 1.0. This number
has an exact representation and so we don't get accuracy
problems. The advantage is that the code is simpler. */
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -23,25 +23,25 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f7,@object)
.type f7,@object
f7: .double -0.145263899385486377
ASM_SIZE_DIRECTIVE(f7)
ASM_TYPE_DIRECTIVE(f6,@object)
.type f6,@object
f6: .double 0.784932344976639262
ASM_SIZE_DIRECTIVE(f6)
ASM_TYPE_DIRECTIVE(f5,@object)
.type f5,@object
f5: .double -1.83469277483613086
ASM_SIZE_DIRECTIVE(f5)
ASM_TYPE_DIRECTIVE(f4,@object)
.type f4,@object
f4: .double 2.44693122563534430
ASM_SIZE_DIRECTIVE(f4)
ASM_TYPE_DIRECTIVE(f3,@object)
.type f3,@object
f3: .double -2.11499494167371287
ASM_SIZE_DIRECTIVE(f3)
ASM_TYPE_DIRECTIVE(f2,@object)
.type f2,@object
f2: .double 1.50819193781584896
ASM_SIZE_DIRECTIVE(f2)
ASM_TYPE_DIRECTIVE(f1,@object)
.type f1,@object
f1: .double 0.354895765043919860
ASM_SIZE_DIRECTIVE(f1)
@ -50,7 +50,7 @@ f1: .double 0.354895765043919860
#define SQR_CBRT2 1.5874010519681994748
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
ASM_TYPE_DIRECTIVE(factor,@object)
.type factor,@object
factor: .double ONE_SQR_CBRT2
.double ONE_CBRT2
.double 1.0
@ -58,7 +58,7 @@ factor: .double ONE_SQR_CBRT2
.double SQR_CBRT2
ASM_SIZE_DIRECTIVE(factor)
ASM_TYPE_DIRECTIVE(two54,@object)
.type two54,@object
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
ASM_SIZE_DIRECTIVE(two54)

View file

@ -23,13 +23,13 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f3,@object)
.type f3,@object
f3: .double 0.191502161678719066
ASM_SIZE_DIRECTIVE(f3)
ASM_TYPE_DIRECTIVE(f2,@object)
.type f2,@object
f2: .double 0.697570460207922770
ASM_SIZE_DIRECTIVE(f2)
ASM_TYPE_DIRECTIVE(f1,@object)
.type f1,@object
f1: .double 0.492659620528969547
ASM_SIZE_DIRECTIVE(f1)
@ -38,7 +38,7 @@ f1: .double 0.492659620528969547
#define SQR_CBRT2 1.5874010519681994748
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
ASM_TYPE_DIRECTIVE(factor,@object)
.type factor,@object
.align ALIGNARG(4)
factor: .double ONE_SQR_CBRT2
.double ONE_CBRT2
@ -47,7 +47,7 @@ factor: .double ONE_SQR_CBRT2
.double SQR_CBRT2
ASM_SIZE_DIRECTIVE(factor)
ASM_TYPE_DIRECTIVE(two25,@object)
.type two25,@object
two25: .byte 0, 0, 0, 0x4c
ASM_SIZE_DIRECTIVE(two25)

View file

@ -23,35 +23,35 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f8,@object)
.type f8,@object
f8: .tfloat 0.161617097923756032
ASM_SIZE_DIRECTIVE(f8)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f7,@object)
.type f7,@object
f7: .tfloat -0.988553671195413709
ASM_SIZE_DIRECTIVE(f7)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f6,@object)
.type f6,@object
f6: .tfloat 2.65298938441952296
ASM_SIZE_DIRECTIVE(f6)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f5,@object)
.type f5,@object
f5: .tfloat -4.11151425200350531
ASM_SIZE_DIRECTIVE(f5)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f4,@object)
.type f4,@object
f4: .tfloat 4.09559907378707839
ASM_SIZE_DIRECTIVE(f4)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f3,@object)
.type f3,@object
f3: .tfloat -2.82414939754975962
ASM_SIZE_DIRECTIVE(f3)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f2,@object)
.type f2,@object
f2: .tfloat 1.67595307700780102
ASM_SIZE_DIRECTIVE(f2)
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(f1,@object)
.type f1,@object
f1: .tfloat 0.338058687610520237
ASM_SIZE_DIRECTIVE(f1)
@ -62,7 +62,7 @@ f1: .tfloat 0.338058687610520237
/* We make the entries in the following table all 16 bytes
wide to avoid having to implement a multiplication by 10. */
ASM_TYPE_DIRECTIVE(factor,@object)
.type factor,@object
.align ALIGNARG(4)
factor: .tfloat ONE_SQR_CBRT2
.byte 0, 0, 0, 0, 0, 0
@ -75,7 +75,7 @@ factor: .tfloat ONE_SQR_CBRT2
.tfloat SQR_CBRT2
ASM_SIZE_DIRECTIVE(factor)
ASM_TYPE_DIRECTIVE(two64,@object)
.type two64,@object
.align ALIGNARG(4)
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
ASM_SIZE_DIRECTIVE(two64)

View file

@ -27,13 +27,13 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(minus1,@object)
.type minus1,@object
minus1: .double -1.0
ASM_SIZE_DIRECTIVE(minus1)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(l2e,@object)
.type l2e,@object
l2e: .tfloat 1.442695040888963407359924681002
ASM_SIZE_DIRECTIVE(l2e)

View file

@ -27,13 +27,13 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(minus1,@object)
.type minus1,@object
minus1: .double -1.0
ASM_SIZE_DIRECTIVE(minus1)
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(l2e,@object)
.type l2e,@object
l2e: .tfloat 1.442695040888963407359924681002
ASM_SIZE_DIRECTIVE(l2e)

View file

@ -24,7 +24,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(two54,@object)
.type two54,@object
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
ASM_SIZE_DIRECTIVE(two54)

View file

@ -24,7 +24,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(two25,@object)
.type two25,@object
two25: .byte 0, 0, 0, 0x4c
ASM_SIZE_DIRECTIVE(two25)

View file

@ -24,7 +24,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(two64,@object)
.type two64,@object
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
ASM_SIZE_DIRECTIVE(two64)

View file

@ -27,7 +27,7 @@
- some (future) systems might want to pass parameters in registers. */
.globl C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
.type C_SYMBOL_NAME(_mcount), @function
.align ALIGNARG(4)
C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
@ -55,7 +55,7 @@ weak_alias (_mcount, mcount)
/* Same as above, but doesn't require a frame pointer */
.globl C_SYMBOL_NAME(__fentry__)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
.type C_SYMBOL_NAME(__fentry__), @function
.align ALIGNARG(4)
C_LABEL(__fentry__)
/* Save the caller-clobbered registers. */

View file

@ -12,13 +12,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -243,82 +243,82 @@ L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */
.long 0xee615a27, 0x3ffefa1b
.long 0x5b6e4540, 0x3fff5076
.long 0x819e90d8, 0x3fffa7c1
ASM_TYPE_DIRECTIVE(L(DP_T), @object)
.type L(DP_T), @object
ASM_SIZE_DIRECTIVE(L(DP_T))
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
L(DP_KLN2): /* double precision K/log(2) */
.long 0x652b82fe, 0x40571547
ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
.type L(DP_KLN2), @object
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
.p2align 3
L(DP_NLN2K): /* double precision -log(2)/K */
.long 0xfefa39ef, 0xbf862e42
ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
.type L(DP_NLN2K), @object
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
.p2align 3
L(DP_RS): /* double precision 2^23+2^22 */
.long 0x00000000, 0x41680000
ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
.type L(DP_RS), @object
ASM_SIZE_DIRECTIVE(L(DP_RS))
.p2align 3
L(DP_P3): /* double precision polynomial coefficient P3 */
.long 0xeb78fa85, 0x3fa56420
ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
.type L(DP_P3), @object
ASM_SIZE_DIRECTIVE(L(DP_P3))
.p2align 3
L(DP_P1): /* double precision polynomial coefficient P1 */
.long 0x008d6118, 0x3fe00000
ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
.type L(DP_P1), @object
ASM_SIZE_DIRECTIVE(L(DP_P1))
.p2align 3
L(DP_P2): /* double precision polynomial coefficient P2 */
.long 0xda752d4f, 0x3fc55550
ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
.type L(DP_P2), @object
ASM_SIZE_DIRECTIVE(L(DP_P2))
.p2align 3
L(DP_P0): /* double precision polynomial coefficient P0 */
.long 0xffffe7c6, 0x3fefffff
ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
.type L(DP_P0), @object
ASM_SIZE_DIRECTIVE(L(DP_P0))
.p2align 2
L(SP_INF_0):
.long 0x7f800000 /* single precision Inf */
.long 0 /* single precision zero */
ASM_TYPE_DIRECTIVE(L(SP_INF_0), @object)
.type L(SP_INF_0), @object
ASM_SIZE_DIRECTIVE(L(SP_INF_0))
.section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_RS): /* single precision 2^23+2^22 */
.long 0x4b400000
ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
.type L(SP_RS), @object
ASM_SIZE_DIRECTIVE(L(SP_RS))
.p2align 2
L(SP_SMALL): /* single precision small value 2^(-100) */
.long 0x0d800000
ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
.type L(SP_SMALL), @object
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
.p2align 2
L(SP_LARGE): /* single precision large value 2^100 */
.long 0x71800000
ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
.type L(SP_LARGE), @object
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
.p2align 2
L(SP_ONE): /* single precision 1.0 */
.long 0x3f800000
ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
.type L(SP_ONE), @object
ASM_SIZE_DIRECTIVE(L(SP_ONE))
strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)

View file

@ -1,6 +1,6 @@
/* strtok (str, delim) -- Return next DELIM separated token from STR.
For Intel 80686.
Copyright (C) 1998, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
Copyright (C) 1998-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -43,7 +43,7 @@
#else
.bss
.local save_ptr
ASM_TYPE_DIRECTIVE (save_ptr, @object)
.type save_ptr, @object
.size save_ptr, 4
save_ptr:
# if __BOUNDED_POINTERS__

View file

@ -1,6 +1,6 @@
/* strtok (str, delim) -- Return next DELIM separated token from STR.
For Intel 80x86, x>=3.
Copyright (C) 1996-1998,2000,2001,2005,2006 Free Software Foundation, Inc.
Copyright (C) 1996-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -43,7 +43,7 @@
#else
.bss
.local save_ptr
ASM_TYPE_DIRECTIVE (save_ptr, @object)
.type save_ptr, @object
.size save_ptr, 4
save_ptr:
# if __BOUNDED_POINTERS__

View file

@ -50,8 +50,6 @@
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
#define ALIGNARG(log2) 1<<log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
@ -63,8 +61,8 @@
#define ENTRY(name) \
STABS_CURRENT_FILE1("") \
STABS_CURRENT_FILE(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(4); \
STABS_FUN(name) \
C_LABEL(name) \

View file

@ -30,15 +30,15 @@
# define CALL_MCOUNT \
mflr r0; \
stw r0,4(r1); \
cfi_offset (lr, 4); \
cfi_offset (lr, 4); \
bl JUMPTARGET(_mcount);
#else /* PROF */
# define CALL_MCOUNT /* Do nothing. */
#endif /* PROF */
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(2); \
C_LABEL(name) \
cfi_startproc; \
@ -46,7 +46,7 @@
/* helper macro for accessing the 32-bit powerpc GOT. */
#define SETUP_GOT_ACCESS(regname,GOT_LABEL) \
#define SETUP_GOT_ACCESS(regname,GOT_LABEL) \
bcl 20,31,GOT_LABEL ; \
GOT_LABEL: ; \
mflr (regname)
@ -64,8 +64,8 @@ GOT_LABEL: ; \
past a 2^align boundary. */
#ifdef PROF
# define EALIGN(name, alignt, words) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(2); \
C_LABEL(name) \
cfi_startproc; \
@ -76,8 +76,8 @@ GOT_LABEL: ; \
0:
#else /* PROF */
# define EALIGN(name, alignt, words) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(alignt); \
EALIGN_W_##words; \
C_LABEL(name) \
@ -89,7 +89,7 @@ GOT_LABEL: ; \
cfi_endproc; \
ASM_SIZE_DIRECTIVE(name)
#define DO_CALL(syscall) \
#define DO_CALL(syscall) \
li 0,syscall; \
sc

View file

@ -147,8 +147,6 @@
/* This seems to always be the case on PPC. */
#define ALIGNARG(log2) log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
#endif /* __ASSEMBLER__ */

View file

@ -48,7 +48,7 @@
*/
.globl C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
.type C_SYMBOL_NAME(_mcount), @function
cfi_startproc
.align ALIGNARG(4)
C_LABEL(_mcount)

View file

@ -25,15 +25,13 @@
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
#define ALIGNARG(log2) 1<<log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
/* Define an entry point visible from C. */
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(2); \
C_LABEL(name) \
cfi_startproc; \

View file

@ -44,7 +44,7 @@
_mcount may not modify any register. */
.globl C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
.type C_SYMBOL_NAME(_mcount), @function
cfi_startproc
.align ALIGNARG(4)
C_LABEL(_mcount)

View file

@ -25,15 +25,13 @@
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
#define ALIGNARG(log2) 1<<log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
/* Define an entry point visible from C. */
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(2); \
C_LABEL(name) \
cfi_startproc; \

View file

@ -20,7 +20,7 @@
#include <sysdep.h>
.globl C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(_mcount),function)
.type C_SYMBOL_NAME(_mcount),@function
cfi_startproc
.align 5
C_LABEL(_mcount)

View file

@ -23,8 +23,6 @@
/* Syntactic details of assembler. */
#define ALIGNARG(log2) log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
#ifdef SHARED
@ -36,8 +34,8 @@
/* Define an entry point visible from C. */
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(5); \
C_LABEL(name) \
cfi_startproc; \

View file

@ -58,8 +58,6 @@
/* This seems to always be the case on PPC. */
# define ALIGNARG(log2) log2
/* For ELF we need the `.type' directive to make shared libs work right. */
# define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
#endif /* __ASSEMBLER__ */

View file

@ -25,7 +25,7 @@
#include <sysdep.h>
.globl C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
.type C_SYMBOL_NAME(_mcount), @function
.align ALIGNARG(4)
C_LABEL(_mcount)
/* Allocate space for 7 registers. */
@ -66,7 +66,7 @@ C_LABEL(_mcount)
weak_alias (_mcount, mcount)
.globl C_SYMBOL_NAME(__fentry__)
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
.type C_SYMBOL_NAME(__fentry__), @function
.align ALIGNARG(4)
C_LABEL(__fentry__)
/* Allocate space for 7 registers. */

View file

@ -251,89 +251,89 @@ L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */
.long 0xee615a27, 0x3ffefa1b
.long 0x5b6e4540, 0x3fff5076
.long 0x819e90d8, 0x3fffa7c1
ASM_TYPE_DIRECTIVE(L(DP_T), @object)
.type L(DP_T), @object
ASM_SIZE_DIRECTIVE(L(DP_T))
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
L(DP_KLN2): /* double precision K/log(2) */
.long 0x652b82fe, 0x40571547
ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
.type L(DP_KLN2), @object
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
.p2align 3
L(DP_NLN2K): /* double precision -log(2)/K */
.long 0xfefa39ef, 0xbf862e42
ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
.type L(DP_NLN2K), @object
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
.p2align 3
L(DP_RS): /* double precision 2^23+2^22 */
.long 0x00000000, 0x41680000
ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
.type L(DP_RS), @object
ASM_SIZE_DIRECTIVE(L(DP_RS))
.p2align 3
L(DP_P3): /* double precision polynomial coefficient P3 */
.long 0xeb78fa85, 0x3fa56420
ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
.type L(DP_P3), @object
ASM_SIZE_DIRECTIVE(L(DP_P3))
.p2align 3
L(DP_P1): /* double precision polynomial coefficient P1 */
.long 0x008d6118, 0x3fe00000
ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
.type L(DP_P1), @object
ASM_SIZE_DIRECTIVE(L(DP_P1))
.p2align 3
L(DP_P2): /* double precision polynomial coefficient P2 */
.long 0xda752d4f, 0x3fc55550
ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
.type L(DP_P2), @object
ASM_SIZE_DIRECTIVE(L(DP_P2))
.p2align 3
L(DP_P0): /* double precision polynomial coefficient P0 */
.long 0xffffe7c6, 0x3fefffff
ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
.type L(DP_P0), @object
ASM_SIZE_DIRECTIVE(L(DP_P0))
.p2align 2
L(SP_RANGE): /* single precision overflow/underflow bounds */
.long 0x42b17217 /* if x>this bound, then result overflows */
.long 0x42cff1b4 /* if x<this bound, then result underflows */
ASM_TYPE_DIRECTIVE(L(SP_RANGE), @object)
.type L(SP_RANGE), @object
ASM_SIZE_DIRECTIVE(L(SP_RANGE))
.p2align 2
L(SP_INF_0):
.long 0x7f800000 /* single precision Inf */
.long 0 /* single precision zero */
ASM_TYPE_DIRECTIVE(L(SP_INF_0), @object)
.type L(SP_INF_0), @object
ASM_SIZE_DIRECTIVE(L(SP_INF_0))
.section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_RS): /* single precision 2^23+2^22 */
.long 0x4b400000
ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
.type L(SP_RS), @object
ASM_SIZE_DIRECTIVE(L(SP_RS))
.p2align 2
L(SP_SMALL): /* single precision small value 2^(-100) */
.long 0x0d800000
ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
.type L(SP_SMALL), @object
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
.p2align 2
L(SP_LARGE): /* single precision large value 2^100 */
.long 0x71800000
ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
.type L(SP_LARGE), @object
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
.p2align 2
L(SP_ONE): /* single precision 1.0 */
.long 0x3f800000
ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
.type L(SP_ONE), @object
ASM_SIZE_DIRECTIVE(L(SP_ONE))
strong_alias (__ieee754_expf, __expf_finite)

View file

@ -42,26 +42,26 @@
.p2align 4
#ifdef USE_AS_EXP10L
ASM_TYPE_DIRECTIVE(c0,@object)
.type c0,@object
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c0)
ASM_TYPE_DIRECTIVE(c1,@object)
.type c1,@object
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c1)
#else
ASM_TYPE_DIRECTIVE(c0,@object)
.type c0,@object
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c0)
ASM_TYPE_DIRECTIVE(c1,@object)
.type c1,@object
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(c1)
#endif
#ifndef USE_AS_EXPM1L
ASM_TYPE_DIRECTIVE(csat,@object)
.type csat,@object
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(csat)

View file

@ -13,13 +13,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -12,13 +12,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -12,13 +12,13 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
/* It is not important that this constant is precise. It is only
a value which is known to be on the safe side for using the
fyl2xp1 instruction. */
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)

View file

@ -23,34 +23,34 @@
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
ASM_TYPE_DIRECTIVE(one,@object)
.type one,@object
one: .double 1.0
ASM_SIZE_DIRECTIVE(one)
ASM_TYPE_DIRECTIVE(limit,@object)
.type limit,@object
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
ASM_TYPE_DIRECTIVE(p63,@object)
.type p63,@object
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
ASM_SIZE_DIRECTIVE(p63)
ASM_TYPE_DIRECTIVE(p64,@object)
.type p64,@object
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
ASM_SIZE_DIRECTIVE(p64)
ASM_TYPE_DIRECTIVE(p78,@object)
.type p78,@object
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
ASM_SIZE_DIRECTIVE(p78)
.section .rodata.cst16,"aM",@progbits,16
.p2align 3
ASM_TYPE_DIRECTIVE(infinity,@object)
.type infinity,@object
inf_zero:
infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
ASM_SIZE_DIRECTIVE(infinity)
ASM_TYPE_DIRECTIVE(zero,@object)
.type zero,@object
zero: .double 0.0
ASM_SIZE_DIRECTIVE(zero)
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
.type minf_mzero,@object
minf_mzero:
minfinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff

View file

@ -13,7 +13,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(zero_nan,@object)
.type zero_nan,@object
zero_nan:
.double 0.0
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f

View file

@ -22,12 +22,12 @@
.section .rodata.cst16,"aM",@progbits,16
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(signmask,@object)
.type signmask,@object
signmask:
.byte 0, 0, 0, 0, 0, 0, 0, 0x80
.byte 0, 0, 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(signmask)
ASM_TYPE_DIRECTIVE(othermask,@object)
.type othermask,@object
othermask:
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0, 0

View file

@ -22,7 +22,7 @@
.section .rodata
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(mask,@object)
.type mask,@object
mask:
.byte 0xff, 0xff, 0xff, 0x7f
ASM_SIZE_DIRECTIVE(mask)

View file

@ -44,7 +44,7 @@
#else
.bss
.local save_ptr
ASM_TYPE_DIRECTIVE (save_ptr, @object)
.type save_ptr, @object
.size save_ptr, LP_SIZE
save_ptr:
.space LP_SIZE

View file

@ -27,15 +27,13 @@
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
#define ALIGNARG(log2) 1<<log2
/* For ELF we need the `.type' directive to make shared libs work right. */
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
/* Define an entry point visible from C. */
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
.align ALIGNARG(4); \
C_LABEL(name) \
cfi_startproc; \