]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
authorRichard Henderson <rth@gcc.gnu.org>
Wed, 1 Jun 2005 16:32:31 +0000 (09:32 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 1 Jun 2005 16:32:31 +0000 (09:32 -0700)
        * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
        * config.in, configure: Rebuild.
        * config/alpha/alpha.c (print_operand): Add 'j'.
        * alpha.md (divmodsi_internal_er_1): Use it.
        (divmoddi_internal_er_1): Likewise.

From-SVN: r100455

gcc/ChangeLog
gcc/config.in
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md
gcc/configure
gcc/configure.ac

index 428514916a6e6bcd05ecddc70411d9f7e1ba590d..4711afe5d6188d84c1a0dbf7d0762b5872f2389f 100644 (file)
@@ -1,3 +1,11 @@
+2005-06-01  Richard Henderson  <rth@redhat.com>
+
+       * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
+       * config.in, configure: Rebuild.
+       * config/alpha/alpha.c (print_operand): Add 'j'.
+       * alpha.md (divmodsi_internal_er_1): Use it.
+       (divmoddi_internal_er_1): Likewise.
+
 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * doc/install.texi (sparc-sun-solaris2*): Update note
        (m68hc11_split_move): Likewise.
 
 2005-05-06  Bruce Korb  <bkorb@gnu.org>
-            Joseph S. Myers <joseph@codesourcery.com>
+           Joseph S. Myers <joseph@codesourcery.com>
 
        * fixinc/inclhack.def: Correct backslashes
        * fixinc/fixincl.x: regen
index 547dda02945423d857ce410945b9390a2845d09d..f7971907bea75b035df0b4cec41ff18bd3b5403f 100644 (file)
@@ -97,6 +97,9 @@
 /* Define if your assembler supports the Sun syntax for cmov. */
 #undef HAVE_AS_IX86_CMOV_SUN_SYNTAX
 
+/* Define if your assembler supports the lituse_jsrdirect relocation. */
+#undef HAVE_AS_JSRDIRECT_RELOCS
+
 /* Define if your assembler supports .sleb128 and .uleb128. */
 #undef HAVE_AS_LEB128
 
index fbaeabe5049afbd6ea1ef1b4e34e41483c4a20e5..4de6ac44ad24c29475b84de0e4812346e1352075 100644 (file)
@@ -5469,6 +5469,21 @@ print_operand (FILE *file, rtx x, int code)
       }
       break;
 
+    case 'j':
+      {
+       const char *lituse;
+
+#ifdef HAVE_AS_JSRDIRECT_RELOCS
+       lituse = "lituse_jsrdirect";
+#else
+       lituse = "lituse_jsr";
+#endif
+
+       if (INTVAL (x) == 0)
+         abort ();
+       fprintf (file, "\t\t!%s!%d", lituse, (int) INTVAL (x));
+      }
+      break;
     case 'r':
       /* If this operand is the constant zero, write it as "$31".  */
       if (GET_CODE (x) == REG)
index c008e1bed28a165284796d85afee6bbf88d7baba..cca51ba181c862fbedf33f52abffde2f98c55eb5 100644 (file)
    (clobber (reg:DI 23))
    (clobber (reg:DI 28))]
   "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
-  "ldq $27,__%E3($29)\t\t!literal!%#\;jsr $23,($27),__%E3\t\t!lituse_jsr!%#"
+  "#"
   "&& reload_completed"
   [(parallel [(set (match_dup 0)
                   (sign_extend:DI (match_dup 3)))
    (clobber (reg:DI 23))
    (clobber (reg:DI 28))]
   "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
-  "jsr $23,($27),__%E3%J5"
+  "jsr $23,($27),__%E3%j5"
   [(set_attr "type" "jsr")
    (set_attr "length" "4")])
 
    (clobber (reg:DI 23))
    (clobber (reg:DI 28))]
   "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
-  "ldq $27,__%E3($29)\t\t!literal!%#\;jsr $23,($27),__%E3\t\t!lituse_jsr!%#"
+  "#"
   "&& reload_completed"
   [(parallel [(set (match_dup 0) (match_dup 3))
              (use (match_dup 0))
    (clobber (reg:DI 23))
    (clobber (reg:DI 28))]
   "TARGET_EXPLICIT_RELOCS && ! TARGET_ABI_OPEN_VMS"
-  "jsr $23,($27),__%E3%J5"
+  "jsr $23,($27),__%E3%j5"
   [(set_attr "type" "jsr")
    (set_attr "length" "4")])
 
index bd8a927d528b0abb9b33788361308a4e860e2775..91f9326d9b224edc59d34ff03ffefe3fb2184afb 100755 (executable)
@@ -11090,6 +11090,45 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_AS_EXPLICIT_RELOCS 1
 _ACEOF
 
+fi
+    echo "$as_me:$LINENO: checking assembler for jsrdirect relocation support" >&5
+echo $ECHO_N "checking assembler for jsrdirect relocation support... $ECHO_C" >&6
+if test "${gcc_cv_as_alpha_jsrdirect_relocs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gcc_cv_as_alpha_jsrdirect_relocs=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 16 \) \* 1000 + 90`
+  then gcc_cv_as_alpha_jsrdirect_relocs=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '     .set nomacro
+       .text
+       ldq     $27, a($29)     !literal!1
+       jsr     $26, ($27), a   !lituse_jsrdirect!1' > 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_alpha_jsrdirect_relocs=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_alpha_jsrdirect_relocs" >&5
+echo "${ECHO_T}$gcc_cv_as_alpha_jsrdirect_relocs" >&6
+if test $gcc_cv_as_alpha_jsrdirect_relocs = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_JSRDIRECT_RELOCS 1
+_ACEOF
+
 fi
     ;;
 
index 37f2dee5dbe9e6c124b42bdbf94ca65da78b108d..d9151dddfc0c0b8c97e4d11723728a93060b0c73 100644 (file)
@@ -2327,6 +2327,14 @@ case "$target" in
        lda     $29, 0($29)     !gpdisp!3],,
     [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
   [Define if your assembler supports explicit relocations.])])
+    gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
+       gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
+[      .set nomacro
+       .text
+       ldq     $27, a($29)     !literal!1
+       jsr     $26, ($27), a   !lituse_jsrdirect!1],,
+    [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
+  [Define if your assembler supports the lituse_jsrdirect relocation.])])
     ;;
 
   cris-*-*)