Commit 00ccc16d by Jeffrey A Law Committed by Jeff Law

configure.in: Check if the assembler supports ".balign" and ".p2align" and define...

        * configure.in: Check if the assembler supports ".balign" and
        ".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately.
        * acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag.
        * i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for
        ".balign" then use it.

From-SVN: r21023
parent 0841099a
Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com) Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com)
* configure.in: Check if the assembler supports ".balign" and
".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately.
* acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag.
* i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for
".balign" then use it.
* print-rtl.c (print_rtx): Revert previous patch. * print-rtl.c (print_rtx): Revert previous patch.
* jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit * jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
of bytes to skip when using the GAS .p2align command. */ of bytes to skip when using the GAS .p2align command. */
#undef HAVE_GAS_MAX_SKIP_P2ALIGN #undef HAVE_GAS_MAX_SKIP_P2ALIGN
/* Define if your assembler supports .balign and .p2align. */
#undef HAVE_GAS_BALIGN_AND_P2ALIGN
/* Define if you have a working <inttypes.h> header file. */ /* Define if you have a working <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
......
...@@ -80,7 +80,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -80,7 +80,7 @@ Boston, MA 02111-1307, USA. */
doubt or guess work, and since this file is used for both a.out and other doubt or guess work, and since this file is used for both a.out and other
file formats, we use one of them. */ file formats, we use one of them. */
#if 0 /* ??? However, not every port uses binutils 2.6 yet. */ #ifdef HAVE_GAS_BALIGN_AND_P2ALIGN
#undef ASM_OUTPUT_ALIGN #undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \ #define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG)!=0) fprintf ((FILE), "\t.balign %d\n", 1<<(LOG)) if ((LOG)!=0) fprintf ((FILE), "\t.balign %d\n", 1<<(LOG))
......
...@@ -5237,6 +5237,15 @@ elif [ -f $srcdir/../gas/configure.in ]; then ...@@ -5237,6 +5237,15 @@ elif [ -f $srcdir/../gas/configure.in ]; then
done done
gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"` gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"` gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
# Gas version 2.6 and later support for .balign and .p2align.
# bytes to skip when using .p2align.
if [ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2 ]; then
gcc_cv_as_alignment_features=".balign and .p2align"
cat >> confdefs.h <<\EOF
#define HAVE_GAS_BALIGN_AND_P2ALIGN 1
EOF
fi
# Gas version 2.8 and later support specifying the maximum # Gas version 2.8 and later support specifying the maximum
# bytes to skip when using .p2align. # bytes to skip when using .p2align.
if [ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2 ]; then if [ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2 ]; then
...@@ -5251,6 +5260,17 @@ elif [ x$host = x$target ]; then ...@@ -5251,6 +5260,17 @@ elif [ x$host = x$target ]; then
gcc_cv_as=as$host_exeext gcc_cv_as=as$host_exeext
fi fi
if [ x$gcc_cv_as != x ]; then if [ x$gcc_cv_as != x ]; then
# Check if we have .balign and .p2align
echo ".balign 4" > conftest.s
echo ".p2align 2" >> conftest.s
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
gcc_cv_as_alignment_features=".balign and .p2align"
cat >> confdefs.h <<\EOF
#define HAVE_GAS_BALIGN_AND_P2ALIGN 1
EOF
fi
rm -f conftest.s conftest.o
# Check if specifying the maximum bytes to skip when # Check if specifying the maximum bytes to skip when
# using .p2align is supported. # using .p2align is supported.
echo ".p2align 4,,7" > conftest.s echo ".p2align 4,,7" > conftest.s
......
...@@ -3332,6 +3332,12 @@ elif [[ -f $srcdir/../gas/configure.in ]]; then ...@@ -3332,6 +3332,12 @@ elif [[ -f $srcdir/../gas/configure.in ]]; then
done done
gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([[0-9]]*\)"` gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([[0-9]]*\)"`
gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.\([[0-9]]*\)"` gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[[0-9]]*\.\([[0-9]]*\)"`
# Gas version 2.6 and later support for .balign and .p2align.
# bytes to skip when using .p2align.
if [[ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2 ]]; then
gcc_cv_as_alignment_features=".balign and .p2align"
AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
fi
# Gas version 2.8 and later support specifying the maximum # Gas version 2.8 and later support specifying the maximum
# bytes to skip when using .p2align. # bytes to skip when using .p2align.
if [[ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2 ]]; then if [[ "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2 ]]; then
...@@ -3343,6 +3349,14 @@ elif [[ x$host = x$target ]]; then ...@@ -3343,6 +3349,14 @@ elif [[ x$host = x$target ]]; then
gcc_cv_as=as$host_exeext gcc_cv_as=as$host_exeext
fi fi
if [[ x$gcc_cv_as != x ]]; then if [[ x$gcc_cv_as != x ]]; then
# Check if we have .balign and .p2align
echo ".balign 4" > conftest.s
echo ".p2align 2" >> conftest.s
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
gcc_cv_as_alignment_features=".balign and .p2align"
AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
fi
rm -f conftest.s conftest.o
# Check if specifying the maximum bytes to skip when # Check if specifying the maximum bytes to skip when
# using .p2align is supported. # using .p2align is supported.
echo ".p2align 4,,7" > conftest.s echo ".p2align 4,,7" > conftest.s
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment