summaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-21 03:58:51 +0000
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>2010-02-21 03:58:51 +0000
commit2f1e7d0b3cc16bfdc2206528200cb3438c025c5e (patch)
tree1f268d9d146f9c7ed9d1caef3cd9d4aadc1046a9 /gcc/configure.ac
parentd088d2eb7f2c5e20f0da735cffa5f4e71559f6ce (diff)
downloadgcc-2f1e7d0b3cc16bfdc2206528200cb3438c025c5e.tar.gz
gcc/
2010-02-20 David S. Miller <davem@davemloft.net> * configure.ac: Test if linker and assembler properly support GOTDATA_OP relocations. * configure: Rebuild. * config.in: Likewise. * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New. (movsi_lo_sum_pic): Use %gdop_*() relocs if available. (movsi_high_pic): Likewise. (movdi_lo_sum_pic): Likewise. (movdi_high_pic): Likewise. (movsi_pic_gotdata_op): New pattern. (movdi_pic_gotdata_op): Likewise. * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2, emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156933 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index cd44af8b35e..fe1ac55d863 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2944,6 +2944,28 @@ case "$target" in
[AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
[Define if your assembler supports -relax option.])])
+ gcc_GAS_CHECK_FEATURE([GOTDATA_OP relocs],
+ gcc_cv_as_sparc_gotdata_op,,
+ [-K PIC],
+[.text
+foo:
+ nop
+bar:
+ sethi %gdop_hix22(foo), %g1
+ xor %g1, %gdop_lox10(foo), %g1
+ ld [[%l7 + %g1]], %g2, %gdop(foo)],
+ [if test x$gcc_cv_ld != x \
+ && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
+ && (test x$gnu_ld_flag = xno \
+ || (test x$gcc_cv_objdump != x \
+ && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
+ | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1)); then
+ gcc_cv_as_sparc_gotdata_op=yes
+ fi
+ rm -f conftest],
+ [AC_DEFINE(HAVE_AS_SPARC_GOTDATA_OP, 1,
+ [Define if your assembler and linker support GOTDATA_OP relocs.])])
+
gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
gcc_cv_as_sparc_ua_pcrel,,
[-K PIC],