mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}.
This commit is contained in:
81
ChangeLog
81
ChangeLog
@ -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>
|
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* libio/iofopen.c: Include <fcntl.h>.
|
* libio/iofopen.c: Include <fcntl.h>.
|
||||||
|
4
NEWS
4
NEWS
@ -9,8 +9,8 @@ Version 2.17
|
|||||||
|
|
||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
6778, 6808, 14042, 14151, 14154, 14157, 14173, 14283, 14298, 14328, 14331,
|
6778, 6808, 14042, 14150, 14151, 14154, 14157, 14173, 14283, 14298, 14328,
|
||||||
14337, 14347, 14349
|
14331, 14337, 14347, 14349
|
||||||
|
|
||||||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||||||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||||||
|
@ -37,10 +37,6 @@
|
|||||||
/* Define if the assembler supports the `.set' directive. */
|
/* Define if the assembler supports the `.set' directive. */
|
||||||
#undef HAVE_ASM_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. */
|
/* Define if the assembler supports the gnu_unique_object symbol type. */
|
||||||
#undef HAVE_ASM_UNIQUE_OBJECT
|
#undef HAVE_ASM_UNIQUE_OBJECT
|
||||||
|
|
||||||
|
40
configure
vendored
40
configure
vendored
@ -4076,43 +4076,7 @@ else
|
|||||||
$as_echo "yes" >&6; }
|
$as_echo "yes" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler .type directive prefix" >&5
|
if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
|
||||||
$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"$multi_arch" = xyes; then
|
if test x"$multi_arch" = xyes; then
|
||||||
as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
|
as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
|
||||||
else
|
else
|
||||||
@ -5728,7 +5692,7 @@ else
|
|||||||
cat > conftest.s <<EOF
|
cat > conftest.s <<EOF
|
||||||
${libc_cv_dot_text}
|
${libc_cv_dot_text}
|
||||||
_sym:
|
_sym:
|
||||||
.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
|
.type _sym, %gnu_unique_object
|
||||||
EOF
|
EOF
|
||||||
if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
|
if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
|
||||||
libc_cv_asm_unique_object=yes
|
libc_cv_asm_unique_object=yes
|
||||||
|
26
configure.in
26
configure.in
@ -581,29 +581,7 @@ else
|
|||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CACHE_CHECK(for assembler .type directive prefix,
|
if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
|
||||||
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"$multi_arch" = xyes; then
|
if test x"$multi_arch" = xyes; then
|
||||||
AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
|
AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
|
||||||
else
|
else
|
||||||
@ -1125,7 +1103,7 @@ AC_CACHE_CHECK(for assembler gnu_unique_object symbol type,
|
|||||||
cat > conftest.s <<EOF
|
cat > conftest.s <<EOF
|
||||||
${libc_cv_dot_text}
|
${libc_cv_dot_text}
|
||||||
_sym:
|
_sym:
|
||||||
.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
|
.type _sym, %gnu_unique_object
|
||||||
EOF
|
EOF
|
||||||
if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
|
if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
|
||||||
libc_cv_asm_unique_object=yes
|
libc_cv_asm_unique_object=yes
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
||||||
# define S(s) _S (s)
|
|
||||||
# define _S(s) #s
|
|
||||||
|
|
||||||
asm (".data;"
|
asm (".data;"
|
||||||
".globl var\n"
|
".globl var\n"
|
||||||
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
|
".type var, %gnu_unique_object\n"
|
||||||
".size var, 4\n"
|
".size var, 4\n"
|
||||||
"var:.zero 4\n"
|
"var:.zero 4\n"
|
||||||
".previous");
|
".previous");
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
||||||
# define S(s) _S (s)
|
|
||||||
# define _S(s) #s
|
|
||||||
|
|
||||||
asm (".data;"
|
asm (".data;"
|
||||||
".globl var\n"
|
".globl var\n"
|
||||||
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
|
".type var, %gnu_unique_object\n"
|
||||||
".size var, 4\n"
|
".size var, 4\n"
|
||||||
"var:.zero 4\n"
|
"var:.zero 4\n"
|
||||||
".previous");
|
".previous");
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
||||||
# define S(s) _S (s)
|
|
||||||
# define _S(s) #s
|
|
||||||
|
|
||||||
asm (".data;"
|
asm (".data;"
|
||||||
".globl var\n"
|
".globl var\n"
|
||||||
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
|
".type var, %gnu_unique_object\n"
|
||||||
".size var, 4\n"
|
".size var, 4\n"
|
||||||
"var:.zero 4\n"
|
"var:.zero 4\n"
|
||||||
".previous");
|
".previous");
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
#ifdef HAVE_ASM_UNIQUE_OBJECT
|
||||||
# define S(s) _S (s)
|
|
||||||
# define _S(s) #s
|
|
||||||
|
|
||||||
asm (".data;"
|
asm (".data;"
|
||||||
".globl var\n"
|
".globl var\n"
|
||||||
".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
|
".type var, %gnu_unique_object\n"
|
||||||
".size var, 4\n"
|
".size var, 4\n"
|
||||||
"var:.zero 4\n"
|
"var:.zero 4\n"
|
||||||
".previous");
|
".previous");
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
It should define for us the following symbols:
|
It should define for us the following symbols:
|
||||||
|
|
||||||
* HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'.
|
* 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_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
|
||||||
* HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
|
* HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
|
||||||
|
|
||||||
@ -252,37 +250,26 @@ for linking")
|
|||||||
thinks it is. */
|
thinks it is. */
|
||||||
#define declare_symbol_alias(symbol, original, type, size) \
|
#define declare_symbol_alias(symbol, original, type, size) \
|
||||||
declare_symbol_alias_1 (symbol, original, type, size)
|
declare_symbol_alias_1 (symbol, original, type, size)
|
||||||
#ifdef ASM_TYPE_DIRECTIVE_PREFIX
|
#ifdef __ASSEMBLER__
|
||||||
# ifdef __ASSEMBLER__
|
# define declare_symbol_alias_1(symbol, original, type, size) \
|
||||||
# define declare_symbol_alias_1(symbol, original, type, size) \
|
strong_alias (original, symbol); \
|
||||||
strong_alias (original, symbol); \
|
.type C_SYMBOL_NAME (symbol), %##type; \
|
||||||
.type C_SYMBOL_NAME (symbol), \
|
.size C_SYMBOL_NAME (symbol), size
|
||||||
declare_symbol_alias_1_paste (ASM_TYPE_DIRECTIVE_PREFIX, type); \
|
#else /* Not __ASSEMBLER__. */
|
||||||
.size C_SYMBOL_NAME (symbol), size
|
# define declare_symbol_alias_1(symbol, original, type, size) \
|
||||||
# define declare_symbol_alias_1_paste(a, b) \
|
asm (".globl " __SYMBOL_PREFIX #symbol \
|
||||||
declare_symbol_alias_1_paste_1 (a,b)
|
"\n\t" declare_symbol_alias_1_alias (symbol, original) \
|
||||||
# define declare_symbol_alias_1_paste_1(a,b) a##b
|
"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
|
||||||
# else /* Not __ASSEMBLER__. */
|
"%" #type \
|
||||||
# define declare_symbol_alias_1(symbol, original, type, size) \
|
"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
|
||||||
asm (".globl " __SYMBOL_PREFIX #symbol \
|
# ifdef HAVE_ASM_SET_DIRECTIVE
|
||||||
"\n\t" declare_symbol_alias_1_alias (symbol, original) \
|
# define declare_symbol_alias_1_alias(symbol, original) \
|
||||||
"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
|
".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
|
||||||
declare_symbol_alias_1_stringify (ASM_TYPE_DIRECTIVE_PREFIX) #type \
|
# else
|
||||||
"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
|
# define declare_symbol_alias_1_alias(symbol, original) \
|
||||||
# define declare_symbol_alias_1_stringify(x) \
|
__SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
|
||||||
declare_symbol_alias_1_stringify_1 (x)
|
# endif /* HAVE_ASM_SET_DIRECTIVE */
|
||||||
# define declare_symbol_alias_1_stringify_1(x) #x
|
#endif /* __ASSEMBLER__ */
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -22,10 +22,10 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -22,10 +22,10 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -25,13 +25,13 @@
|
|||||||
/* Please note that we use double value for 1.0. This number
|
/* Please note that we use double value for 1.0. This number
|
||||||
has an exact representation and so we don't get accuracy
|
has an exact representation and so we don't get accuracy
|
||||||
problems. The advantage is that the code is simpler. */
|
problems. The advantage is that the code is simpler. */
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -22,16 +22,16 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(half,@object)
|
.type half,@object
|
||||||
half: .double 0.5
|
half: .double 0.5
|
||||||
ASM_SIZE_DIRECTIVE(half)
|
ASM_SIZE_DIRECTIVE(half)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
ASM_TYPE_DIRECTIVE(ln2_2,@object)
|
.type ln2_2,@object
|
||||||
ln2_2: .tfloat 0.3465735902799726547086160
|
ln2_2: .tfloat 0.3465735902799726547086160
|
||||||
ASM_SIZE_DIRECTIVE(ln2_2)
|
ASM_SIZE_DIRECTIVE(ln2_2)
|
||||||
|
|
||||||
|
@ -22,17 +22,17 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(half,@object)
|
.type half,@object
|
||||||
half: .double 0.5
|
half: .double 0.5
|
||||||
ASM_SIZE_DIRECTIVE(half)
|
ASM_SIZE_DIRECTIVE(half)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(ln2_2,@object)
|
.type ln2_2,@object
|
||||||
ln2_2: .tfloat 0.3465735902799726547086160
|
ln2_2: .tfloat 0.3465735902799726547086160
|
||||||
ASM_SIZE_DIRECTIVE(ln2_2)
|
ASM_SIZE_DIRECTIVE(ln2_2)
|
||||||
|
|
||||||
|
@ -25,20 +25,20 @@
|
|||||||
/* Please note that we use double values for 0.5 and 1.0. These
|
/* 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
|
numbers have exact representations and so we don't get accuracy
|
||||||
problems. The advantage is that the code is simpler. */
|
problems. The advantage is that the code is simpler. */
|
||||||
ASM_TYPE_DIRECTIVE(half,@object)
|
.type half,@object
|
||||||
half: .double 0.5
|
half: .double 0.5
|
||||||
ASM_SIZE_DIRECTIVE(half)
|
ASM_SIZE_DIRECTIVE(half)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(ln2_2,@object)
|
.type ln2_2,@object
|
||||||
ln2_2: .tfloat 0.3465735902799726547086160
|
ln2_2: .tfloat 0.3465735902799726547086160
|
||||||
ASM_SIZE_DIRECTIVE(ln2_2)
|
ASM_SIZE_DIRECTIVE(ln2_2)
|
||||||
|
|
||||||
|
@ -42,26 +42,26 @@
|
|||||||
|
|
||||||
.p2align 4
|
.p2align 4
|
||||||
#ifdef USE_AS_EXP10L
|
#ifdef USE_AS_EXP10L
|
||||||
ASM_TYPE_DIRECTIVE(c0,@object)
|
.type c0,@object
|
||||||
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
|
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c0)
|
ASM_SIZE_DIRECTIVE(c0)
|
||||||
ASM_TYPE_DIRECTIVE(c1,@object)
|
.type c1,@object
|
||||||
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
|
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c1)
|
ASM_SIZE_DIRECTIVE(c1)
|
||||||
#else
|
#else
|
||||||
ASM_TYPE_DIRECTIVE(c0,@object)
|
.type c0,@object
|
||||||
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
|
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c0)
|
ASM_SIZE_DIRECTIVE(c0)
|
||||||
ASM_TYPE_DIRECTIVE(c1,@object)
|
.type c1,@object
|
||||||
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
|
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c1)
|
ASM_SIZE_DIRECTIVE(c1)
|
||||||
#endif
|
#endif
|
||||||
#ifndef USE_AS_EXPM1L
|
#ifndef USE_AS_EXPM1L
|
||||||
ASM_TYPE_DIRECTIVE(csat,@object)
|
.type csat,@object
|
||||||
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
|
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(csat)
|
ASM_SIZE_DIRECTIVE(csat)
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -10,13 +10,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -23,31 +23,31 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
ASM_TYPE_DIRECTIVE(p63,@object)
|
.type p63,@object
|
||||||
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(p63)
|
ASM_SIZE_DIRECTIVE(p63)
|
||||||
ASM_TYPE_DIRECTIVE(p10,@object)
|
.type p10,@object
|
||||||
p10: .byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
|
p10: .byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
|
||||||
ASM_SIZE_DIRECTIVE(p10)
|
ASM_SIZE_DIRECTIVE(p10)
|
||||||
|
|
||||||
.section .rodata.cst16,"aM",@progbits,16
|
.section .rodata.cst16,"aM",@progbits,16
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(infinity,@object)
|
.type infinity,@object
|
||||||
inf_zero:
|
inf_zero:
|
||||||
infinity:
|
infinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
||||||
ASM_SIZE_DIRECTIVE(infinity)
|
ASM_SIZE_DIRECTIVE(infinity)
|
||||||
ASM_TYPE_DIRECTIVE(zero,@object)
|
.type zero,@object
|
||||||
zero: .double 0.0
|
zero: .double 0.0
|
||||||
ASM_SIZE_DIRECTIVE(zero)
|
ASM_SIZE_DIRECTIVE(zero)
|
||||||
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
|
.type minf_mzero,@object
|
||||||
minf_mzero:
|
minf_mzero:
|
||||||
minfinity:
|
minfinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
||||||
|
@ -23,28 +23,28 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
ASM_TYPE_DIRECTIVE(p31,@object)
|
.type p31,@object
|
||||||
p31: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
|
p31: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
|
||||||
ASM_SIZE_DIRECTIVE(p31)
|
ASM_SIZE_DIRECTIVE(p31)
|
||||||
|
|
||||||
.section .rodata.cst16,"aM",@progbits,16
|
.section .rodata.cst16,"aM",@progbits,16
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(infinity,@object)
|
.type infinity,@object
|
||||||
inf_zero:
|
inf_zero:
|
||||||
infinity:
|
infinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
||||||
ASM_SIZE_DIRECTIVE(infinity)
|
ASM_SIZE_DIRECTIVE(infinity)
|
||||||
ASM_TYPE_DIRECTIVE(zero,@object)
|
.type zero,@object
|
||||||
zero: .double 0.0
|
zero: .double 0.0
|
||||||
ASM_SIZE_DIRECTIVE(zero)
|
ASM_SIZE_DIRECTIVE(zero)
|
||||||
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
|
.type minf_mzero,@object
|
||||||
minf_mzero:
|
minf_mzero:
|
||||||
minfinity:
|
minfinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
||||||
|
@ -23,34 +23,34 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
ASM_TYPE_DIRECTIVE(p63,@object)
|
.type p63,@object
|
||||||
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(p63)
|
ASM_SIZE_DIRECTIVE(p63)
|
||||||
ASM_TYPE_DIRECTIVE(p64,@object)
|
.type p64,@object
|
||||||
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(p64)
|
ASM_SIZE_DIRECTIVE(p64)
|
||||||
ASM_TYPE_DIRECTIVE(p78,@object)
|
.type p78,@object
|
||||||
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
|
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
|
||||||
ASM_SIZE_DIRECTIVE(p78)
|
ASM_SIZE_DIRECTIVE(p78)
|
||||||
|
|
||||||
.section .rodata.cst16,"aM",@progbits,16
|
.section .rodata.cst16,"aM",@progbits,16
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(infinity,@object)
|
.type infinity,@object
|
||||||
inf_zero:
|
inf_zero:
|
||||||
infinity:
|
infinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
||||||
ASM_SIZE_DIRECTIVE(infinity)
|
ASM_SIZE_DIRECTIVE(infinity)
|
||||||
ASM_TYPE_DIRECTIVE(zero,@object)
|
.type zero,@object
|
||||||
zero: .double 0.0
|
zero: .double 0.0
|
||||||
ASM_SIZE_DIRECTIVE(zero)
|
ASM_SIZE_DIRECTIVE(zero)
|
||||||
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
|
.type minf_mzero,@object
|
||||||
minf_mzero:
|
minf_mzero:
|
||||||
minfinity:
|
minfinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(zero_nan,@object)
|
.type zero_nan,@object
|
||||||
zero_nan:
|
zero_nan:
|
||||||
.double 0.0
|
.double 0.0
|
||||||
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(zero_nan,@object)
|
.type zero_nan,@object
|
||||||
zero_nan:
|
zero_nan:
|
||||||
.double 0.0
|
.double 0.0
|
||||||
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(zero_nan,@object)
|
.type zero_nan,@object
|
||||||
zero_nan:
|
zero_nan:
|
||||||
.double 0.0
|
.double 0.0
|
||||||
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(huge,@object)
|
.type huge,@object
|
||||||
huge: .double 1e+300
|
huge: .double 1e+300
|
||||||
ASM_SIZE_DIRECTIVE(huge)
|
ASM_SIZE_DIRECTIVE(huge)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(huge,@object)
|
.type huge,@object
|
||||||
huge: .double 1e+36
|
huge: .double 1e+36
|
||||||
ASM_SIZE_DIRECTIVE(huge)
|
ASM_SIZE_DIRECTIVE(huge)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -22,20 +22,20 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(huge,@object)
|
.type huge,@object
|
||||||
huge: .tfloat 1e+4930
|
huge: .tfloat 1e+4930
|
||||||
ASM_SIZE_DIRECTIVE(huge)
|
ASM_SIZE_DIRECTIVE(huge)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
/* Please note that we use double value for 1.0. This number
|
/* Please note that we use double value for 1.0. This number
|
||||||
has an exact representation and so we don't get accuracy
|
has an exact representation and so we don't get accuracy
|
||||||
problems. The advantage is that the code is simpler. */
|
problems. The advantage is that the code is simpler. */
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -23,25 +23,25 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f7,@object)
|
.type f7,@object
|
||||||
f7: .double -0.145263899385486377
|
f7: .double -0.145263899385486377
|
||||||
ASM_SIZE_DIRECTIVE(f7)
|
ASM_SIZE_DIRECTIVE(f7)
|
||||||
ASM_TYPE_DIRECTIVE(f6,@object)
|
.type f6,@object
|
||||||
f6: .double 0.784932344976639262
|
f6: .double 0.784932344976639262
|
||||||
ASM_SIZE_DIRECTIVE(f6)
|
ASM_SIZE_DIRECTIVE(f6)
|
||||||
ASM_TYPE_DIRECTIVE(f5,@object)
|
.type f5,@object
|
||||||
f5: .double -1.83469277483613086
|
f5: .double -1.83469277483613086
|
||||||
ASM_SIZE_DIRECTIVE(f5)
|
ASM_SIZE_DIRECTIVE(f5)
|
||||||
ASM_TYPE_DIRECTIVE(f4,@object)
|
.type f4,@object
|
||||||
f4: .double 2.44693122563534430
|
f4: .double 2.44693122563534430
|
||||||
ASM_SIZE_DIRECTIVE(f4)
|
ASM_SIZE_DIRECTIVE(f4)
|
||||||
ASM_TYPE_DIRECTIVE(f3,@object)
|
.type f3,@object
|
||||||
f3: .double -2.11499494167371287
|
f3: .double -2.11499494167371287
|
||||||
ASM_SIZE_DIRECTIVE(f3)
|
ASM_SIZE_DIRECTIVE(f3)
|
||||||
ASM_TYPE_DIRECTIVE(f2,@object)
|
.type f2,@object
|
||||||
f2: .double 1.50819193781584896
|
f2: .double 1.50819193781584896
|
||||||
ASM_SIZE_DIRECTIVE(f2)
|
ASM_SIZE_DIRECTIVE(f2)
|
||||||
ASM_TYPE_DIRECTIVE(f1,@object)
|
.type f1,@object
|
||||||
f1: .double 0.354895765043919860
|
f1: .double 0.354895765043919860
|
||||||
ASM_SIZE_DIRECTIVE(f1)
|
ASM_SIZE_DIRECTIVE(f1)
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ f1: .double 0.354895765043919860
|
|||||||
#define SQR_CBRT2 1.5874010519681994748
|
#define SQR_CBRT2 1.5874010519681994748
|
||||||
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
|
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
|
||||||
|
|
||||||
ASM_TYPE_DIRECTIVE(factor,@object)
|
.type factor,@object
|
||||||
factor: .double ONE_SQR_CBRT2
|
factor: .double ONE_SQR_CBRT2
|
||||||
.double ONE_CBRT2
|
.double ONE_CBRT2
|
||||||
.double 1.0
|
.double 1.0
|
||||||
@ -58,7 +58,7 @@ factor: .double ONE_SQR_CBRT2
|
|||||||
.double SQR_CBRT2
|
.double SQR_CBRT2
|
||||||
ASM_SIZE_DIRECTIVE(factor)
|
ASM_SIZE_DIRECTIVE(factor)
|
||||||
|
|
||||||
ASM_TYPE_DIRECTIVE(two54,@object)
|
.type two54,@object
|
||||||
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
|
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(two54)
|
ASM_SIZE_DIRECTIVE(two54)
|
||||||
|
|
||||||
|
@ -23,13 +23,13 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f3,@object)
|
.type f3,@object
|
||||||
f3: .double 0.191502161678719066
|
f3: .double 0.191502161678719066
|
||||||
ASM_SIZE_DIRECTIVE(f3)
|
ASM_SIZE_DIRECTIVE(f3)
|
||||||
ASM_TYPE_DIRECTIVE(f2,@object)
|
.type f2,@object
|
||||||
f2: .double 0.697570460207922770
|
f2: .double 0.697570460207922770
|
||||||
ASM_SIZE_DIRECTIVE(f2)
|
ASM_SIZE_DIRECTIVE(f2)
|
||||||
ASM_TYPE_DIRECTIVE(f1,@object)
|
.type f1,@object
|
||||||
f1: .double 0.492659620528969547
|
f1: .double 0.492659620528969547
|
||||||
ASM_SIZE_DIRECTIVE(f1)
|
ASM_SIZE_DIRECTIVE(f1)
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ f1: .double 0.492659620528969547
|
|||||||
#define SQR_CBRT2 1.5874010519681994748
|
#define SQR_CBRT2 1.5874010519681994748
|
||||||
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
|
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
|
||||||
|
|
||||||
ASM_TYPE_DIRECTIVE(factor,@object)
|
.type factor,@object
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
factor: .double ONE_SQR_CBRT2
|
factor: .double ONE_SQR_CBRT2
|
||||||
.double ONE_CBRT2
|
.double ONE_CBRT2
|
||||||
@ -47,7 +47,7 @@ factor: .double ONE_SQR_CBRT2
|
|||||||
.double SQR_CBRT2
|
.double SQR_CBRT2
|
||||||
ASM_SIZE_DIRECTIVE(factor)
|
ASM_SIZE_DIRECTIVE(factor)
|
||||||
|
|
||||||
ASM_TYPE_DIRECTIVE(two25,@object)
|
.type two25,@object
|
||||||
two25: .byte 0, 0, 0, 0x4c
|
two25: .byte 0, 0, 0, 0x4c
|
||||||
ASM_SIZE_DIRECTIVE(two25)
|
ASM_SIZE_DIRECTIVE(two25)
|
||||||
|
|
||||||
|
@ -23,35 +23,35 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f8,@object)
|
.type f8,@object
|
||||||
f8: .tfloat 0.161617097923756032
|
f8: .tfloat 0.161617097923756032
|
||||||
ASM_SIZE_DIRECTIVE(f8)
|
ASM_SIZE_DIRECTIVE(f8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f7,@object)
|
.type f7,@object
|
||||||
f7: .tfloat -0.988553671195413709
|
f7: .tfloat -0.988553671195413709
|
||||||
ASM_SIZE_DIRECTIVE(f7)
|
ASM_SIZE_DIRECTIVE(f7)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f6,@object)
|
.type f6,@object
|
||||||
f6: .tfloat 2.65298938441952296
|
f6: .tfloat 2.65298938441952296
|
||||||
ASM_SIZE_DIRECTIVE(f6)
|
ASM_SIZE_DIRECTIVE(f6)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f5,@object)
|
.type f5,@object
|
||||||
f5: .tfloat -4.11151425200350531
|
f5: .tfloat -4.11151425200350531
|
||||||
ASM_SIZE_DIRECTIVE(f5)
|
ASM_SIZE_DIRECTIVE(f5)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f4,@object)
|
.type f4,@object
|
||||||
f4: .tfloat 4.09559907378707839
|
f4: .tfloat 4.09559907378707839
|
||||||
ASM_SIZE_DIRECTIVE(f4)
|
ASM_SIZE_DIRECTIVE(f4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f3,@object)
|
.type f3,@object
|
||||||
f3: .tfloat -2.82414939754975962
|
f3: .tfloat -2.82414939754975962
|
||||||
ASM_SIZE_DIRECTIVE(f3)
|
ASM_SIZE_DIRECTIVE(f3)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f2,@object)
|
.type f2,@object
|
||||||
f2: .tfloat 1.67595307700780102
|
f2: .tfloat 1.67595307700780102
|
||||||
ASM_SIZE_DIRECTIVE(f2)
|
ASM_SIZE_DIRECTIVE(f2)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(f1,@object)
|
.type f1,@object
|
||||||
f1: .tfloat 0.338058687610520237
|
f1: .tfloat 0.338058687610520237
|
||||||
ASM_SIZE_DIRECTIVE(f1)
|
ASM_SIZE_DIRECTIVE(f1)
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ f1: .tfloat 0.338058687610520237
|
|||||||
|
|
||||||
/* We make the entries in the following table all 16 bytes
|
/* We make the entries in the following table all 16 bytes
|
||||||
wide to avoid having to implement a multiplication by 10. */
|
wide to avoid having to implement a multiplication by 10. */
|
||||||
ASM_TYPE_DIRECTIVE(factor,@object)
|
.type factor,@object
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
factor: .tfloat ONE_SQR_CBRT2
|
factor: .tfloat ONE_SQR_CBRT2
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
@ -75,7 +75,7 @@ factor: .tfloat ONE_SQR_CBRT2
|
|||||||
.tfloat SQR_CBRT2
|
.tfloat SQR_CBRT2
|
||||||
ASM_SIZE_DIRECTIVE(factor)
|
ASM_SIZE_DIRECTIVE(factor)
|
||||||
|
|
||||||
ASM_TYPE_DIRECTIVE(two64,@object)
|
.type two64,@object
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(two64)
|
ASM_SIZE_DIRECTIVE(two64)
|
||||||
|
@ -27,13 +27,13 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(minus1,@object)
|
.type minus1,@object
|
||||||
minus1: .double -1.0
|
minus1: .double -1.0
|
||||||
ASM_SIZE_DIRECTIVE(minus1)
|
ASM_SIZE_DIRECTIVE(minus1)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(l2e,@object)
|
.type l2e,@object
|
||||||
l2e: .tfloat 1.442695040888963407359924681002
|
l2e: .tfloat 1.442695040888963407359924681002
|
||||||
ASM_SIZE_DIRECTIVE(l2e)
|
ASM_SIZE_DIRECTIVE(l2e)
|
||||||
|
|
||||||
|
@ -27,13 +27,13 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(minus1,@object)
|
.type minus1,@object
|
||||||
minus1: .double -1.0
|
minus1: .double -1.0
|
||||||
ASM_SIZE_DIRECTIVE(minus1)
|
ASM_SIZE_DIRECTIVE(minus1)
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(l2e,@object)
|
.type l2e,@object
|
||||||
l2e: .tfloat 1.442695040888963407359924681002
|
l2e: .tfloat 1.442695040888963407359924681002
|
||||||
ASM_SIZE_DIRECTIVE(l2e)
|
ASM_SIZE_DIRECTIVE(l2e)
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(two54,@object)
|
.type two54,@object
|
||||||
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
|
two54: .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(two54)
|
ASM_SIZE_DIRECTIVE(two54)
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(two25,@object)
|
.type two25,@object
|
||||||
two25: .byte 0, 0, 0, 0x4c
|
two25: .byte 0, 0, 0, 0x4c
|
||||||
ASM_SIZE_DIRECTIVE(two25)
|
ASM_SIZE_DIRECTIVE(two25)
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(two64,@object)
|
.type two64,@object
|
||||||
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
two64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(two64)
|
ASM_SIZE_DIRECTIVE(two64)
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
- some (future) systems might want to pass parameters in registers. */
|
- some (future) systems might want to pass parameters in registers. */
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(_mcount)
|
.globl C_SYMBOL_NAME(_mcount)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
|
.type C_SYMBOL_NAME(_mcount), @function
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(_mcount)
|
C_LABEL(_mcount)
|
||||||
/* Save the caller-clobbered registers. */
|
/* Save the caller-clobbered registers. */
|
||||||
@ -55,7 +55,7 @@ weak_alias (_mcount, mcount)
|
|||||||
|
|
||||||
/* Same as above, but doesn't require a frame pointer */
|
/* Same as above, but doesn't require a frame pointer */
|
||||||
.globl C_SYMBOL_NAME(__fentry__)
|
.globl C_SYMBOL_NAME(__fentry__)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
|
.type C_SYMBOL_NAME(__fentry__), @function
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(__fentry__)
|
C_LABEL(__fentry__)
|
||||||
/* Save the caller-clobbered registers. */
|
/* Save the caller-clobbered registers. */
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -243,82 +243,82 @@ L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */
|
|||||||
.long 0xee615a27, 0x3ffefa1b
|
.long 0xee615a27, 0x3ffefa1b
|
||||||
.long 0x5b6e4540, 0x3fff5076
|
.long 0x5b6e4540, 0x3fff5076
|
||||||
.long 0x819e90d8, 0x3fffa7c1
|
.long 0x819e90d8, 0x3fffa7c1
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_T), @object)
|
.type L(DP_T), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_T))
|
ASM_SIZE_DIRECTIVE(L(DP_T))
|
||||||
|
|
||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_KLN2): /* double precision K/log(2) */
|
L(DP_KLN2): /* double precision K/log(2) */
|
||||||
.long 0x652b82fe, 0x40571547
|
.long 0x652b82fe, 0x40571547
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
|
.type L(DP_KLN2), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
|
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_NLN2K): /* double precision -log(2)/K */
|
L(DP_NLN2K): /* double precision -log(2)/K */
|
||||||
.long 0xfefa39ef, 0xbf862e42
|
.long 0xfefa39ef, 0xbf862e42
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
|
.type L(DP_NLN2K), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
|
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_RS): /* double precision 2^23+2^22 */
|
L(DP_RS): /* double precision 2^23+2^22 */
|
||||||
.long 0x00000000, 0x41680000
|
.long 0x00000000, 0x41680000
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
|
.type L(DP_RS), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_RS))
|
ASM_SIZE_DIRECTIVE(L(DP_RS))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P3): /* double precision polynomial coefficient P3 */
|
L(DP_P3): /* double precision polynomial coefficient P3 */
|
||||||
.long 0xeb78fa85, 0x3fa56420
|
.long 0xeb78fa85, 0x3fa56420
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
|
.type L(DP_P3), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P3))
|
ASM_SIZE_DIRECTIVE(L(DP_P3))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P1): /* double precision polynomial coefficient P1 */
|
L(DP_P1): /* double precision polynomial coefficient P1 */
|
||||||
.long 0x008d6118, 0x3fe00000
|
.long 0x008d6118, 0x3fe00000
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
|
.type L(DP_P1), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P1))
|
ASM_SIZE_DIRECTIVE(L(DP_P1))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P2): /* double precision polynomial coefficient P2 */
|
L(DP_P2): /* double precision polynomial coefficient P2 */
|
||||||
.long 0xda752d4f, 0x3fc55550
|
.long 0xda752d4f, 0x3fc55550
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
|
.type L(DP_P2), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P2))
|
ASM_SIZE_DIRECTIVE(L(DP_P2))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P0): /* double precision polynomial coefficient P0 */
|
L(DP_P0): /* double precision polynomial coefficient P0 */
|
||||||
.long 0xffffe7c6, 0x3fefffff
|
.long 0xffffe7c6, 0x3fefffff
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
|
.type L(DP_P0), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P0))
|
ASM_SIZE_DIRECTIVE(L(DP_P0))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_INF_0):
|
L(SP_INF_0):
|
||||||
.long 0x7f800000 /* single precision Inf */
|
.long 0x7f800000 /* single precision Inf */
|
||||||
.long 0 /* single precision zero */
|
.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))
|
ASM_SIZE_DIRECTIVE(L(SP_INF_0))
|
||||||
|
|
||||||
.section .rodata.cst4,"aM",@progbits,4
|
.section .rodata.cst4,"aM",@progbits,4
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_RS): /* single precision 2^23+2^22 */
|
L(SP_RS): /* single precision 2^23+2^22 */
|
||||||
.long 0x4b400000
|
.long 0x4b400000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
|
.type L(SP_RS), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_RS))
|
ASM_SIZE_DIRECTIVE(L(SP_RS))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_SMALL): /* single precision small value 2^(-100) */
|
L(SP_SMALL): /* single precision small value 2^(-100) */
|
||||||
.long 0x0d800000
|
.long 0x0d800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
|
.type L(SP_SMALL), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
|
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_LARGE): /* single precision large value 2^100 */
|
L(SP_LARGE): /* single precision large value 2^100 */
|
||||||
.long 0x71800000
|
.long 0x71800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
|
.type L(SP_LARGE), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
|
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_ONE): /* single precision 1.0 */
|
L(SP_ONE): /* single precision 1.0 */
|
||||||
.long 0x3f800000
|
.long 0x3f800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
|
.type L(SP_ONE), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_ONE))
|
ASM_SIZE_DIRECTIVE(L(SP_ONE))
|
||||||
|
|
||||||
strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)
|
strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* strtok (str, delim) -- Return next DELIM separated token from STR.
|
/* strtok (str, delim) -- Return next DELIM separated token from STR.
|
||||||
For Intel 80686.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
#else
|
#else
|
||||||
.bss
|
.bss
|
||||||
.local save_ptr
|
.local save_ptr
|
||||||
ASM_TYPE_DIRECTIVE (save_ptr, @object)
|
.type save_ptr, @object
|
||||||
.size save_ptr, 4
|
.size save_ptr, 4
|
||||||
save_ptr:
|
save_ptr:
|
||||||
# if __BOUNDED_POINTERS__
|
# if __BOUNDED_POINTERS__
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* strtok (str, delim) -- Return next DELIM separated token from STR.
|
/* strtok (str, delim) -- Return next DELIM separated token from STR.
|
||||||
For Intel 80x86, x>=3.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
#else
|
#else
|
||||||
.bss
|
.bss
|
||||||
.local save_ptr
|
.local save_ptr
|
||||||
ASM_TYPE_DIRECTIVE (save_ptr, @object)
|
.type save_ptr, @object
|
||||||
.size save_ptr, 4
|
.size save_ptr, 4
|
||||||
save_ptr:
|
save_ptr:
|
||||||
# if __BOUNDED_POINTERS__
|
# if __BOUNDED_POINTERS__
|
||||||
|
@ -50,8 +50,6 @@
|
|||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#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 ASM_SIZE_DIRECTIVE(name) .size name,.-name;
|
||||||
|
|
||||||
|
|
||||||
@ -63,8 +61,8 @@
|
|||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
STABS_CURRENT_FILE1("") \
|
STABS_CURRENT_FILE1("") \
|
||||||
STABS_CURRENT_FILE(name) \
|
STABS_CURRENT_FILE(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(4); \
|
.align ALIGNARG(4); \
|
||||||
STABS_FUN(name) \
|
STABS_FUN(name) \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
|
@ -30,15 +30,15 @@
|
|||||||
# define CALL_MCOUNT \
|
# define CALL_MCOUNT \
|
||||||
mflr r0; \
|
mflr r0; \
|
||||||
stw r0,4(r1); \
|
stw r0,4(r1); \
|
||||||
cfi_offset (lr, 4); \
|
cfi_offset (lr, 4); \
|
||||||
bl JUMPTARGET(_mcount);
|
bl JUMPTARGET(_mcount);
|
||||||
#else /* PROF */
|
#else /* PROF */
|
||||||
# define CALL_MCOUNT /* Do nothing. */
|
# define CALL_MCOUNT /* Do nothing. */
|
||||||
#endif /* PROF */
|
#endif /* PROF */
|
||||||
|
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(2); \
|
.align ALIGNARG(2); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
/* helper macro for accessing the 32-bit powerpc GOT. */
|
/* 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 ; \
|
bcl 20,31,GOT_LABEL ; \
|
||||||
GOT_LABEL: ; \
|
GOT_LABEL: ; \
|
||||||
mflr (regname)
|
mflr (regname)
|
||||||
@ -64,8 +64,8 @@ GOT_LABEL: ; \
|
|||||||
past a 2^align boundary. */
|
past a 2^align boundary. */
|
||||||
#ifdef PROF
|
#ifdef PROF
|
||||||
# define EALIGN(name, alignt, words) \
|
# define EALIGN(name, alignt, words) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(2); \
|
.align ALIGNARG(2); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
@ -76,8 +76,8 @@ GOT_LABEL: ; \
|
|||||||
0:
|
0:
|
||||||
#else /* PROF */
|
#else /* PROF */
|
||||||
# define EALIGN(name, alignt, words) \
|
# define EALIGN(name, alignt, words) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(alignt); \
|
.align ALIGNARG(alignt); \
|
||||||
EALIGN_W_##words; \
|
EALIGN_W_##words; \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
@ -89,7 +89,7 @@ GOT_LABEL: ; \
|
|||||||
cfi_endproc; \
|
cfi_endproc; \
|
||||||
ASM_SIZE_DIRECTIVE(name)
|
ASM_SIZE_DIRECTIVE(name)
|
||||||
|
|
||||||
#define DO_CALL(syscall) \
|
#define DO_CALL(syscall) \
|
||||||
li 0,syscall; \
|
li 0,syscall; \
|
||||||
sc
|
sc
|
||||||
|
|
||||||
|
@ -147,8 +147,6 @@
|
|||||||
|
|
||||||
/* This seems to always be the case on PPC. */
|
/* This seems to always be the case on PPC. */
|
||||||
#define ALIGNARG(log2) log2
|
#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
|
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
|
||||||
|
|
||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(_mcount)
|
.globl C_SYMBOL_NAME(_mcount)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
|
.type C_SYMBOL_NAME(_mcount), @function
|
||||||
cfi_startproc
|
cfi_startproc
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(_mcount)
|
C_LABEL(_mcount)
|
||||||
|
@ -25,15 +25,13 @@
|
|||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#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 ASM_SIZE_DIRECTIVE(name) .size name,.-name;
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(2); \
|
.align ALIGNARG(2); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
_mcount may not modify any register. */
|
_mcount may not modify any register. */
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(_mcount)
|
.globl C_SYMBOL_NAME(_mcount)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
|
.type C_SYMBOL_NAME(_mcount), @function
|
||||||
cfi_startproc
|
cfi_startproc
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(_mcount)
|
C_LABEL(_mcount)
|
||||||
|
@ -25,15 +25,13 @@
|
|||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#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 ASM_SIZE_DIRECTIVE(name) .size name,.-name;
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(2); \
|
.align ALIGNARG(2); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(_mcount)
|
.globl C_SYMBOL_NAME(_mcount)
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(_mcount),function)
|
.type C_SYMBOL_NAME(_mcount),@function
|
||||||
cfi_startproc
|
cfi_startproc
|
||||||
.align 5
|
.align 5
|
||||||
C_LABEL(_mcount)
|
C_LABEL(_mcount)
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
/* Syntactic details of assembler. */
|
/* Syntactic details of assembler. */
|
||||||
|
|
||||||
#define ALIGNARG(log2) log2
|
#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
|
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
|
||||||
|
|
||||||
#ifdef SHARED
|
#ifdef SHARED
|
||||||
@ -36,8 +34,8 @@
|
|||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(5); \
|
.align ALIGNARG(5); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
|
@ -58,8 +58,6 @@
|
|||||||
|
|
||||||
/* This seems to always be the case on PPC. */
|
/* This seems to always be the case on PPC. */
|
||||||
# define ALIGNARG(log2) log2
|
# 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
|
# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
|
||||||
|
|
||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(_mcount)
|
.globl C_SYMBOL_NAME(_mcount)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
|
.type C_SYMBOL_NAME(_mcount), @function
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(_mcount)
|
C_LABEL(_mcount)
|
||||||
/* Allocate space for 7 registers. */
|
/* Allocate space for 7 registers. */
|
||||||
@ -66,7 +66,7 @@ C_LABEL(_mcount)
|
|||||||
weak_alias (_mcount, mcount)
|
weak_alias (_mcount, mcount)
|
||||||
|
|
||||||
.globl C_SYMBOL_NAME(__fentry__)
|
.globl C_SYMBOL_NAME(__fentry__)
|
||||||
ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
|
.type C_SYMBOL_NAME(__fentry__), @function
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
C_LABEL(__fentry__)
|
C_LABEL(__fentry__)
|
||||||
/* Allocate space for 7 registers. */
|
/* Allocate space for 7 registers. */
|
||||||
|
@ -251,89 +251,89 @@ L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */
|
|||||||
.long 0xee615a27, 0x3ffefa1b
|
.long 0xee615a27, 0x3ffefa1b
|
||||||
.long 0x5b6e4540, 0x3fff5076
|
.long 0x5b6e4540, 0x3fff5076
|
||||||
.long 0x819e90d8, 0x3fffa7c1
|
.long 0x819e90d8, 0x3fffa7c1
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_T), @object)
|
.type L(DP_T), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_T))
|
ASM_SIZE_DIRECTIVE(L(DP_T))
|
||||||
|
|
||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_KLN2): /* double precision K/log(2) */
|
L(DP_KLN2): /* double precision K/log(2) */
|
||||||
.long 0x652b82fe, 0x40571547
|
.long 0x652b82fe, 0x40571547
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
|
.type L(DP_KLN2), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
|
ASM_SIZE_DIRECTIVE(L(DP_KLN2))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_NLN2K): /* double precision -log(2)/K */
|
L(DP_NLN2K): /* double precision -log(2)/K */
|
||||||
.long 0xfefa39ef, 0xbf862e42
|
.long 0xfefa39ef, 0xbf862e42
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
|
.type L(DP_NLN2K), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
|
ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_RS): /* double precision 2^23+2^22 */
|
L(DP_RS): /* double precision 2^23+2^22 */
|
||||||
.long 0x00000000, 0x41680000
|
.long 0x00000000, 0x41680000
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
|
.type L(DP_RS), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_RS))
|
ASM_SIZE_DIRECTIVE(L(DP_RS))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P3): /* double precision polynomial coefficient P3 */
|
L(DP_P3): /* double precision polynomial coefficient P3 */
|
||||||
.long 0xeb78fa85, 0x3fa56420
|
.long 0xeb78fa85, 0x3fa56420
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
|
.type L(DP_P3), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P3))
|
ASM_SIZE_DIRECTIVE(L(DP_P3))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P1): /* double precision polynomial coefficient P1 */
|
L(DP_P1): /* double precision polynomial coefficient P1 */
|
||||||
.long 0x008d6118, 0x3fe00000
|
.long 0x008d6118, 0x3fe00000
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
|
.type L(DP_P1), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P1))
|
ASM_SIZE_DIRECTIVE(L(DP_P1))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P2): /* double precision polynomial coefficient P2 */
|
L(DP_P2): /* double precision polynomial coefficient P2 */
|
||||||
.long 0xda752d4f, 0x3fc55550
|
.long 0xda752d4f, 0x3fc55550
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
|
.type L(DP_P2), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P2))
|
ASM_SIZE_DIRECTIVE(L(DP_P2))
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
L(DP_P0): /* double precision polynomial coefficient P0 */
|
L(DP_P0): /* double precision polynomial coefficient P0 */
|
||||||
.long 0xffffe7c6, 0x3fefffff
|
.long 0xffffe7c6, 0x3fefffff
|
||||||
ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
|
.type L(DP_P0), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(DP_P0))
|
ASM_SIZE_DIRECTIVE(L(DP_P0))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_RANGE): /* single precision overflow/underflow bounds */
|
L(SP_RANGE): /* single precision overflow/underflow bounds */
|
||||||
.long 0x42b17217 /* if x>this bound, then result overflows */
|
.long 0x42b17217 /* if x>this bound, then result overflows */
|
||||||
.long 0x42cff1b4 /* if x<this bound, then result underflows */
|
.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))
|
ASM_SIZE_DIRECTIVE(L(SP_RANGE))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_INF_0):
|
L(SP_INF_0):
|
||||||
.long 0x7f800000 /* single precision Inf */
|
.long 0x7f800000 /* single precision Inf */
|
||||||
.long 0 /* single precision zero */
|
.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))
|
ASM_SIZE_DIRECTIVE(L(SP_INF_0))
|
||||||
|
|
||||||
.section .rodata.cst4,"aM",@progbits,4
|
.section .rodata.cst4,"aM",@progbits,4
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_RS): /* single precision 2^23+2^22 */
|
L(SP_RS): /* single precision 2^23+2^22 */
|
||||||
.long 0x4b400000
|
.long 0x4b400000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
|
.type L(SP_RS), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_RS))
|
ASM_SIZE_DIRECTIVE(L(SP_RS))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_SMALL): /* single precision small value 2^(-100) */
|
L(SP_SMALL): /* single precision small value 2^(-100) */
|
||||||
.long 0x0d800000
|
.long 0x0d800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
|
.type L(SP_SMALL), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
|
ASM_SIZE_DIRECTIVE(L(SP_SMALL))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_LARGE): /* single precision large value 2^100 */
|
L(SP_LARGE): /* single precision large value 2^100 */
|
||||||
.long 0x71800000
|
.long 0x71800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
|
.type L(SP_LARGE), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
|
ASM_SIZE_DIRECTIVE(L(SP_LARGE))
|
||||||
|
|
||||||
.p2align 2
|
.p2align 2
|
||||||
L(SP_ONE): /* single precision 1.0 */
|
L(SP_ONE): /* single precision 1.0 */
|
||||||
.long 0x3f800000
|
.long 0x3f800000
|
||||||
ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
|
.type L(SP_ONE), @object
|
||||||
ASM_SIZE_DIRECTIVE(L(SP_ONE))
|
ASM_SIZE_DIRECTIVE(L(SP_ONE))
|
||||||
|
|
||||||
strong_alias (__ieee754_expf, __expf_finite)
|
strong_alias (__ieee754_expf, __expf_finite)
|
||||||
|
@ -42,26 +42,26 @@
|
|||||||
|
|
||||||
.p2align 4
|
.p2align 4
|
||||||
#ifdef USE_AS_EXP10L
|
#ifdef USE_AS_EXP10L
|
||||||
ASM_TYPE_DIRECTIVE(c0,@object)
|
.type c0,@object
|
||||||
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
|
c0: .byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c0)
|
ASM_SIZE_DIRECTIVE(c0)
|
||||||
ASM_TYPE_DIRECTIVE(c1,@object)
|
.type c1,@object
|
||||||
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
|
c1: .byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c1)
|
ASM_SIZE_DIRECTIVE(c1)
|
||||||
#else
|
#else
|
||||||
ASM_TYPE_DIRECTIVE(c0,@object)
|
.type c0,@object
|
||||||
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
|
c0: .byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c0)
|
ASM_SIZE_DIRECTIVE(c0)
|
||||||
ASM_TYPE_DIRECTIVE(c1,@object)
|
.type c1,@object
|
||||||
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
|
c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(c1)
|
ASM_SIZE_DIRECTIVE(c1)
|
||||||
#endif
|
#endif
|
||||||
#ifndef USE_AS_EXPM1L
|
#ifndef USE_AS_EXPM1L
|
||||||
ASM_TYPE_DIRECTIVE(csat,@object)
|
.type csat,@object
|
||||||
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
|
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
|
||||||
.byte 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(csat)
|
ASM_SIZE_DIRECTIVE(csat)
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
/* It is not important that this constant is precise. It is only
|
/* 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
|
a value which is known to be on the safe side for using the
|
||||||
fyl2xp1 instruction. */
|
fyl2xp1 instruction. */
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
|
|
||||||
|
@ -23,34 +23,34 @@
|
|||||||
.section .rodata.cst8,"aM",@progbits,8
|
.section .rodata.cst8,"aM",@progbits,8
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(one,@object)
|
.type one,@object
|
||||||
one: .double 1.0
|
one: .double 1.0
|
||||||
ASM_SIZE_DIRECTIVE(one)
|
ASM_SIZE_DIRECTIVE(one)
|
||||||
ASM_TYPE_DIRECTIVE(limit,@object)
|
.type limit,@object
|
||||||
limit: .double 0.29
|
limit: .double 0.29
|
||||||
ASM_SIZE_DIRECTIVE(limit)
|
ASM_SIZE_DIRECTIVE(limit)
|
||||||
ASM_TYPE_DIRECTIVE(p63,@object)
|
.type p63,@object
|
||||||
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(p63)
|
ASM_SIZE_DIRECTIVE(p63)
|
||||||
ASM_TYPE_DIRECTIVE(p64,@object)
|
.type p64,@object
|
||||||
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
p64: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
|
||||||
ASM_SIZE_DIRECTIVE(p64)
|
ASM_SIZE_DIRECTIVE(p64)
|
||||||
ASM_TYPE_DIRECTIVE(p78,@object)
|
.type p78,@object
|
||||||
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
|
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
|
||||||
ASM_SIZE_DIRECTIVE(p78)
|
ASM_SIZE_DIRECTIVE(p78)
|
||||||
|
|
||||||
.section .rodata.cst16,"aM",@progbits,16
|
.section .rodata.cst16,"aM",@progbits,16
|
||||||
|
|
||||||
.p2align 3
|
.p2align 3
|
||||||
ASM_TYPE_DIRECTIVE(infinity,@object)
|
.type infinity,@object
|
||||||
inf_zero:
|
inf_zero:
|
||||||
infinity:
|
infinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
|
||||||
ASM_SIZE_DIRECTIVE(infinity)
|
ASM_SIZE_DIRECTIVE(infinity)
|
||||||
ASM_TYPE_DIRECTIVE(zero,@object)
|
.type zero,@object
|
||||||
zero: .double 0.0
|
zero: .double 0.0
|
||||||
ASM_SIZE_DIRECTIVE(zero)
|
ASM_SIZE_DIRECTIVE(zero)
|
||||||
ASM_TYPE_DIRECTIVE(minf_mzero,@object)
|
.type minf_mzero,@object
|
||||||
minf_mzero:
|
minf_mzero:
|
||||||
minfinity:
|
minfinity:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(zero_nan,@object)
|
.type zero_nan,@object
|
||||||
zero_nan:
|
zero_nan:
|
||||||
.double 0.0
|
.double 0.0
|
||||||
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
|
||||||
|
@ -22,12 +22,12 @@
|
|||||||
.section .rodata.cst16,"aM",@progbits,16
|
.section .rodata.cst16,"aM",@progbits,16
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(signmask,@object)
|
.type signmask,@object
|
||||||
signmask:
|
signmask:
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0, 0x80
|
.byte 0, 0, 0, 0, 0, 0, 0, 0x80
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
ASM_SIZE_DIRECTIVE(signmask)
|
ASM_SIZE_DIRECTIVE(signmask)
|
||||||
ASM_TYPE_DIRECTIVE(othermask,@object)
|
.type othermask,@object
|
||||||
othermask:
|
othermask:
|
||||||
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
||||||
.byte 0, 0, 0, 0, 0, 0, 0, 0
|
.byte 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
ASM_TYPE_DIRECTIVE(mask,@object)
|
.type mask,@object
|
||||||
mask:
|
mask:
|
||||||
.byte 0xff, 0xff, 0xff, 0x7f
|
.byte 0xff, 0xff, 0xff, 0x7f
|
||||||
ASM_SIZE_DIRECTIVE(mask)
|
ASM_SIZE_DIRECTIVE(mask)
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
#else
|
#else
|
||||||
.bss
|
.bss
|
||||||
.local save_ptr
|
.local save_ptr
|
||||||
ASM_TYPE_DIRECTIVE (save_ptr, @object)
|
.type save_ptr, @object
|
||||||
.size save_ptr, LP_SIZE
|
.size save_ptr, LP_SIZE
|
||||||
save_ptr:
|
save_ptr:
|
||||||
.space LP_SIZE
|
.space LP_SIZE
|
||||||
|
@ -27,15 +27,13 @@
|
|||||||
|
|
||||||
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */
|
||||||
#define ALIGNARG(log2) 1<<log2
|
#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 ASM_SIZE_DIRECTIVE(name) .size name,.-name;
|
||||||
|
|
||||||
|
|
||||||
/* Define an entry point visible from C. */
|
/* Define an entry point visible from C. */
|
||||||
#define ENTRY(name) \
|
#define ENTRY(name) \
|
||||||
.globl C_SYMBOL_NAME(name); \
|
.globl C_SYMBOL_NAME(name); \
|
||||||
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
|
.type C_SYMBOL_NAME(name),@function; \
|
||||||
.align ALIGNARG(4); \
|
.align ALIGNARG(4); \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
cfi_startproc; \
|
cfi_startproc; \
|
||||||
|
Reference in New Issue
Block a user