#endif
-/* Define if your assembler and linker support GOTDATA_OP relocs. */
-#ifndef USED_FOR_TARGET
-#undef HAVE_AS_SPARC_GOTDATA_OP
-#endif
-
-
/* Define if your assembler supports call36 relocation. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_SUPPORT_CALL36
UNSPEC_MOVE_PIC)))]
"flag_pic"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "xor\t%1, %%gdop_lox10(%a2), %0";
-#else
- return "or\t%1, %%lo(%a2), %0";
-#endif
})
(define_insn "movsi_high_pic"
(high:SI (unspec:SI [(match_operand 1 "" "")] UNSPEC_MOVE_PIC)))]
"flag_pic && check_pic (1)"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "sethi\t%%gdop_hix22(%a1), %0";
-#else
- return "sethi\t%%hi(%a1), %0";
-#endif
})
(define_insn "movsi_pic_gotdata_op"
UNSPEC_MOVE_GOTDATA))]
"flag_pic && check_pic (1)"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "ld\t[%1 + %2], %0, %%gdop(%a3)";
-#else
- return "ld\t[%1 + %2], %0";
-#endif
}
[(set_attr "type" "load")
(set_attr "subtype" "regular")])
UNSPEC_MOVE_PIC)))]
"TARGET_ARCH64 && flag_pic"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "xor\t%1, %%gdop_lox10(%a2), %0";
-#else
- return "or\t%1, %%lo(%a2), %0";
-#endif
})
(define_insn "movdi_high_pic"
(high:DI (unspec:DI [(match_operand 1 "" "")] UNSPEC_MOVE_PIC)))]
"TARGET_ARCH64 && flag_pic && check_pic (1)"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "sethi\t%%gdop_hix22(%a1), %0";
-#else
- return "sethi\t%%hi(%a1), %0";
-#endif
})
(define_insn "movdi_pic_gotdata_op"
UNSPEC_MOVE_GOTDATA))]
"TARGET_ARCH64 && flag_pic && check_pic (1)"
{
-#ifdef HAVE_AS_SPARC_GOTDATA_OP
return "ldx\t[%1 + %2], %0, %%gdop(%a3)";
-#else
- return "ldx\t[%1 + %2], %0";
-#endif
}
[(set_attr "type" "load")
(set_attr "subtype" "regular")])
$as_echo "#define HAVE_AS_RELAX_OPTION 1" >>confdefs.h
-fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTDATA_OP relocs" >&5
-$as_echo_n "checking assembler for GOTDATA_OP relocs... " >&6; }
-if ${gcc_cv_as_sparc_gotdata_op+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- gcc_cv_as_sparc_gotdata_op=no
- if test x"$gcc_cv_as" != x; then
- $as_echo '.text
-.align 4
-foo:
- nop
-bar:
- sethi %gdop_hix22(foo), %g1
- xor %g1, %gdop_lox10(foo), %g1
- ld [%l7 + %g1], %g2, %gdop(foo)' > conftest.s
- if { ac_try='$gcc_cv_as $gcc_cv_as_flags -K PIC -o conftest.o conftest.s >&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
- if test x$gcc_cv_ld != x \
- && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
- if test x$gcc_cv_objdump != x; then
- if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
- | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
- gcc_cv_as_sparc_gotdata_op=no
- else
- gcc_cv_as_sparc_gotdata_op=yes
- fi
- fi
- fi
- rm -f conftest
- else
- echo "configure: failed program was" >&5
- cat conftest.s >&5
- fi
- rm -f conftest.o conftest.s
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_gotdata_op" >&5
-$as_echo "$gcc_cv_as_sparc_gotdata_op" >&6; }
-if test $gcc_cv_as_sparc_gotdata_op = yes; then
-
-$as_echo "#define HAVE_AS_SPARC_GOTDATA_OP 1" >>confdefs.h
-
fi
[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
-.align 4
-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; then
- if test x$gcc_cv_objdump != x; then
- if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
- | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
- gcc_cv_as_sparc_gotdata_op=no
- else
- gcc_cv_as_sparc_gotdata_op=yes
- fi
- fi
- 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([offsetable %lo()],
gcc_cv_as_sparc_offsetable_lo10,
[-xarch=v9],