aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.in
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>1999-08-02 15:58:04 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-08-02 15:58:04 -0700
commit1cb36a981d95f29f37fef511b88a04c48cfa90cc (patch)
treea4298750822ac9991259b44746e7970194b4f6a4 /gcc/configure.in
parente76d23764b387e9636b5d568b62531019f7f2273 (diff)
downloadgcc-1cb36a981d95f29f37fef511b88a04c48cfa90cc.zip
gcc-1cb36a981d95f29f37fef511b88a04c48cfa90cc.tar.gz
gcc-1cb36a981d95f29f37fef511b88a04c48cfa90cc.tar.bz2
Jakub Jelinek <jj@ultra.linux.cz>
* config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro. (RTX_OK_FOR_OLO10): Likewise. (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable %lo(), allow it in addresses... (PRINT_OPERAND_ADDRESS): ... and print it appropriately. * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo() does not make sense. * config/sparc/sparc.c (sparc_hard_reg_printed): New array. (sparc_output_scratch_registers): New function. (output_function_prologue, sparc_flat_output_function_prologue): Use it. * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if defined. * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it. * configure.in: Add check for .register pseudo-op support in as and check for offsetable %lo(). * acconfig.h: Add templates for the above checks. * configure: Regenerate. Richard Henderson <rth@cygnus.com> * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS. * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise. * sparc/sol2.h (TARGET_DEFAULT): Likewise. From-SVN: r28414
Diffstat (limited to 'gcc/configure.in')
-rw-r--r--gcc/configure.in58
1 files changed, 53 insertions, 5 deletions
diff --git a/gcc/configure.in b/gcc/configure.in
index a813cfc..8602748 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -4153,9 +4153,55 @@ EOF
fi
AC_MSG_RESULT($gcc_cv_as_subsections)
-AC_MSG_CHECKING(assembler instructions)
-gcc_cv_as_instructions=
-if test x$gcc_cv_as != x; then
+case "$target" in
+ sparc*-*-*)
+ AC_MSG_CHECKING(assembler .register pseudo-op support)
+ gcc_cv_as_register_pseudo_op=
+ if test x$gcc_cv_as != x; then
+ # Check if we have .register
+ echo ".register %g2, #scratch" > conftest.s
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_register_pseudo_op=yes
+ AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP)
+ fi
+ rm -f conftest.s conftest.o
+ fi
+ AC_MSG_RESULT($gcc_cv_as_register_pseudo_op)
+
+ AC_MSG_CHECKING([assembler offsetable %lo() support])
+ gcc_cv_as_offsetable_lo10=
+ if test x$gcc_cv_as != x; then
+ # Check if assembler has offsetable %lo()
+ echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
+ echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
+ gcc_cv_as_flags64="-xarch=v9"
+ if ! $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_flags64="-64"
+ if ! $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_flags64=""
+ fi
+ fi
+ if test -n "$gcc_cv_as_flags64" ; then
+ if $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s > /dev/null 2>&1; then
+ if cmp conftest.o conftest1.o > /dev/null 2>&1; then
+ :
+ else
+ gcc_cv_as_offsetable_lo10=yes
+ AC_DEFINE(HAVE_AS_OFFSETABLE_LO10)
+ fi
+ fi
+ fi
+ rm -f conftest.s conftest.o conftest1.s conftest1.o
+ fi
+ AC_MSG_RESULT($gcc_cv_as_offsetable_lo10)
+ ;;
+
+changequote(,)dnl
+ i[34567]86-*-*)
+changequote([,])dnl
+ AC_MSG_CHECKING(assembler instructions)
+ gcc_cv_as_instructions=
+ if test x$gcc_cv_as != x; then
set "filds fists" "filds mem; fists mem"
while test $# -gt 0
do
@@ -4167,8 +4213,10 @@ if test x$gcc_cv_as != x; then
shift 2
done
rm -f conftest.s conftest.o
-fi
-AC_MSG_RESULT($gcc_cv_as_instructions)
+ fi
+ AC_MSG_RESULT($gcc_cv_as_instructions)
+ ;;
+esac
# Figure out what language subdirectories are present.
# Look if the user specified --enable-languages="..."; if not, use