Allow a port not to define an indirect_jump pattern.
authorBernd Schmidt <bernds@codesourcery.com>
Wed, 5 Nov 2014 12:14:10 +0000 (12:14 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 5 Nov 2014 12:14:10 +0000 (12:14 +0000)
* optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
sorry if necessary.

From-SVN: r217120

gcc/ChangeLog
gcc/optabs.c

index a9b456501c5a2960dd4ca9cdc1e8aa4757a11639..46dd7426a7bcc07dff3083a75107c154ea3fe94d 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
+       sorry if necessary.
+
 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
 
        * simplify-rtx.c (simplify_binary_operation_1): Div check added.
index 7e64eacc6f703c4d0689f4100c1b7d1d9b54cd8d..6278d7daad1457503cdfe6b0404543258a4d7f13 100644 (file)
@@ -4531,13 +4531,16 @@ prepare_float_lib_cmp (rtx x, rtx y, enum rtx_code comparison,
 /* Generate code to indirectly jump to a location given in the rtx LOC.  */
 
 void
-emit_indirect_jump (rtx loc)
+emit_indirect_jump (rtx loc ATTRIBUTE_UNUSED)
 {
+#ifndef HAVE_indirect_jump
+  sorry ("indirect jumps are not available on this target");
+#else
   struct expand_operand ops[1];
-
   create_address_operand (&ops[0], loc);
   expand_jump_insn (CODE_FOR_indirect_jump, 1, ops);
   emit_barrier ();
+#endif
 }
 \f
 #ifdef HAVE_conditional_move