target-insns.def (trap): New targetm instruction pattern.
authorRichard Sandiford <richard.sandiford@arm.com>
Sun, 5 Jul 2015 07:51:07 +0000 (07:51 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 5 Jul 2015 07:51:07 +0000 (07:51 +0000)
gcc/
* target-insns.def (trap): New targetm instruction pattern.
* builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
interface.
* explow.c (allocate_dynamic_stack_space): Likewise.
* ifcvt.c (find_if_header): Likewise.

From-SVN: r225425

gcc/ChangeLog
gcc/builtins.c
gcc/explow.c
gcc/ifcvt.c
gcc/target-insns.def

index 2129526aece6a8c233e4caae83ee4b04d621a704..848d4dbb68e6d5d2d5b1fd18a6b4496f0ee491b2 100644 (file)
@@ -1,3 +1,11 @@
+2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * target-insns.def (trap): New targetm instruction pattern.
+       * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
+       interface.
+       * explow.c (allocate_dynamic_stack_space): Likewise.
+       * ifcvt.c (find_if_header): Likewise.
+
 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
 
        * target-insns.def (prefetch): New targetm instruction pattern.
index b98bb066eb1f5c9c08674210f37453589dd8e8b4..d953c634800620f308198f6a30dfe5081404b564 100644 (file)
@@ -4737,10 +4737,9 @@ expand_builtin_assume_aligned (tree exp, rtx target)
 void
 expand_builtin_trap (void)
 {
-#ifdef HAVE_trap
-  if (HAVE_trap)
+  if (targetm.have_trap ())
     {
-      rtx_insn *insn = emit_insn (gen_trap ());
+      rtx_insn *insn = emit_insn (targetm.gen_trap ());
       /* For trap insns when not accumulating outgoing args force
         REG_ARGS_SIZE note to prevent crossjumping of calls with
         different args sizes.  */
@@ -4748,7 +4747,6 @@ expand_builtin_trap (void)
        add_reg_note (insn, REG_ARGS_SIZE, GEN_INT (stack_pointer_delta));
     }
   else
-#endif
     emit_library_call (abort_libfunc, LCT_NORETURN, VOIDmode, 0);
   emit_barrier ();
 }
index adc17a31a3a9d2f0ca50abb56b95b388123f868e..c2158f35f28e9af88aa56dc30c6193ac0ced74f7 100644 (file)
@@ -1422,11 +1422,9 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align,
 
          emit_cmp_and_jump_insns (available, size, GEU, NULL_RTX, Pmode, 1,
                                   space_available);
-#ifdef HAVE_trap
-         if (HAVE_trap)
-           emit_insn (gen_trap ());
+         if (targetm.have_trap ())
+           emit_insn (targetm.gen_trap ());
          else
-#endif
            error ("stack limits not supported on this target");
          emit_barrier ();
          emit_label (space_available);
index 6e20557d52b5821317d25a3fdaa933af2e961925..f796799fc3d92e60c6e4c614942acada381ea493 100644 (file)
@@ -67,9 +67,6 @@
 #ifndef HAVE_decscc
 #define HAVE_decscc 0
 #endif
-#ifndef HAVE_trap
-#define HAVE_trap 0
-#endif
 
 #ifndef MAX_CONDITIONAL_EXECUTE
 #define MAX_CONDITIONAL_EXECUTE \
@@ -3414,7 +3411,7 @@ find_if_header (basic_block test_bb, int pass)
       && cond_exec_find_if_block (&ce_info))
     goto success;
 
-  if (HAVE_trap
+  if (targetm.have_trap ()
       && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing
       && find_cond_trap (test_bb, then_edge, else_edge))
     goto success;
index 45a700822f131ccd12ab36e3a6ee314df69ef68a..33e112e9200bd47ae48188aff11ebf2aabcc2f42 100644 (file)
@@ -51,5 +51,6 @@ DEF_TARGET_INSN (sibcall_epilogue, (void))
 DEF_TARGET_INSN (simple_return, (void))
 DEF_TARGET_INSN (store_multiple, (rtx x0, rtx x1, rtx x2))
 DEF_TARGET_INSN (tablejump, (rtx x0, rtx x1))
+DEF_TARGET_INSN (trap, (void))
 DEF_TARGET_INSN (untyped_call, (rtx x0, rtx x1, rtx x2))
 DEF_TARGET_INSN (untyped_return, (rtx x0, rtx x1))