configure.ac: Test for .dtprelword support on MIPS.

* configure.ac: Test for .dtprelword support on MIPS.
	* configure, config.in: Regenerate.
	* config/mips/mips.c (mips_output_dwarf_dtprel): New.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.

From-SVN: r126273
This commit is contained in:
Joseph Myers 2007-07-03 21:28:02 +01:00 committed by Joseph Myers
parent f1adb0a9f4
commit a44380d2e9
5 changed files with 92 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2007-07-03 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Test for .dtprelword support on MIPS.
* configure, config.in: Regenerate.
* config/mips/mips.c (mips_output_dwarf_dtprel): New.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2007-07-03 Julian Brown <julian@codesourcery.com>
* config.gcc (with_fpu): Allow --with-fpu=vfp3.

View File

@ -185,6 +185,12 @@
#endif
/* Define if your assembler supports .dtprelword. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_DTPRELWORD
#endif
/* Define if your assembler supports dwarf2 .file/.loc directives, and
preserves file table indices exactly as given. */
#ifndef USED_FOR_TARGET

View File

@ -428,6 +428,7 @@ static void mips_extra_live_on_entry (bitmap);
static int mips_comp_type_attributes (tree, tree);
static int mips_mode_rep_extended (enum machine_mode, enum machine_mode);
static bool mips_offset_within_alignment_p (rtx, HOST_WIDE_INT);
static void mips_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
/* Structure to be filled in by compute_frame_size with register
save masks, and offsets for the current function. */
@ -1326,6 +1327,11 @@ static const unsigned char mips16e_save_restore_regs[] = {
#undef TARGET_COMP_TYPE_ATTRIBUTES
#define TARGET_COMP_TYPE_ATTRIBUTES mips_comp_type_attributes
#ifdef HAVE_AS_DTPRELWORD
#undef TARGET_ASM_OUTPUT_DWARF_DTPREL
#define TARGET_ASM_OUTPUT_DWARF_DTPREL mips_output_dwarf_dtprel
#endif
struct gcc_target targetm = TARGET_INITIALIZER;
@ -11819,4 +11825,26 @@ mips_mode_rep_extended (enum machine_mode mode, enum machine_mode mode_rep)
return UNKNOWN;
}
/* MIPS implementation of TARGET_ASM_OUTPUT_DWARF_DTPREL. */
static void
mips_output_dwarf_dtprel (FILE *file, int size, rtx x)
{
switch (size)
{
case 4:
fputs ("\t.dtprelword\t", file);
break;
case 8:
fputs ("\t.dtpreldword\t", file);
break;
default:
gcc_unreachable ();
}
output_addr_const (file, x);
fputs ("+0x8000", file);
}
#include "gt-mips.h"

41
gcc/configure vendored
View File

@ -15906,6 +15906,47 @@ cat >>confdefs.h <<\_ACEOF
#define HAVE_AS_GNU_ATTRIBUTE 1
_ACEOF
fi
echo "$as_me:$LINENO: checking assembler for .dtprelword support" >&5
echo $ECHO_N "checking assembler for .dtprelword support... $ECHO_C" >&6
if test "${gcc_cv_as_mips_dtprelword+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
gcc_cv_as_mips_dtprelword=no
if test $in_tree_gas = yes; then
if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 18 \) \* 1000 + 0`
then gcc_cv_as_mips_dtprelword=yes
fi
elif test x$gcc_cv_as != x; then
echo '.section .tdata,"awT",@progbits
x:
.word 2
.text
.dtprelword x+0x8000' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
gcc_cv_as_mips_dtprelword=yes
else
echo "configure: failed program was" >&5
cat conftest.s >&5
fi
rm -f conftest.o conftest.s
fi
fi
echo "$as_me:$LINENO: result: $gcc_cv_as_mips_dtprelword" >&5
echo "${ECHO_T}$gcc_cv_as_mips_dtprelword" >&6
if test $gcc_cv_as_mips_dtprelword = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_AS_DTPRELWORD 1
_ACEOF
fi
;;
esac

View File

@ -2953,6 +2953,16 @@ LCF0:
[.gnu_attribute 4,1],,
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
[Define if your assembler supports .gnu_attribute.])])
gcc_GAS_CHECK_FEATURE([.dtprelword support],
gcc_cv_as_mips_dtprelword, [2,18,0],,
[.section .tdata,"awT",@progbits
x:
.word 2
.text
.dtprelword x+0x8000],,
[AC_DEFINE(HAVE_AS_DTPRELWORD, 1,
[Define if your assembler supports .dtprelword.])])
;;
esac