From f3eeb82c28c0028b2151ea8ac7ab8f1170b66304 Mon Sep 17 00:00:00 2001 From: David Holsgrove Date: Thu, 23 Jan 2014 14:37:44 +0000 Subject: [PATCH] microblaze.md: Add trap insn and attribute 2014-01-23 David Holsgrove * config/microblaze/microblaze.md: Add trap insn and attribute From-SVN: r206967 --- gcc/ChangeLog | 4 ++++ gcc/config/microblaze/microblaze.md | 10 +++++++++- gcc/testsuite/ChangeLog | 4 ++++ .../gcc.target/microblaze/others/builtin-trap.c | 8 ++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c67c6ff10c6..f52752d86a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-01-23 David Holsgrove + + * config/microblaze/microblaze.md: Add trap insn and attribute + 2014-01-23 Dodji Seketeli PR preprocessor/58580 diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md index 46a7eddd96d..367f2539fc9 100644 --- a/gcc/config/microblaze/microblaze.md +++ b/gcc/config/microblaze/microblaze.md @@ -74,7 +74,7 @@ ;; bshift Shift operations (define_attr "type" - "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt" + "unknown,branch,jump,call,load,store,move,arith,darith,imul,idiv,icmp,multi,nop,no_delay_arith,no_delay_load,no_delay_store,no_delay_imul,no_delay_move,bshift,fadd,frsub,fmul,fdiv,fcmp,fsl,fsqrt,fcvt,trap" (const_string "unknown")) ;; Main data type used by the insn @@ -2201,6 +2201,14 @@ (set_attr "mode" "none") (set_attr "length" "4")]) +;; Trap instruction pattern for __builtin_trap. Same as the glibc ABORT_INSTRUCTION +(define_insn "trap" + [(trap_if (const_int 1) (const_int 0))] + "" + "brki\tr0,-1" + [(set_attr "type" "trap")] +) + ;; The insn to set GOT. The hardcoded number "8" accounts for $pc difference ;; between "mfs" and "addik" instructions. (define_insn "set_got" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2180cb81980..5b33fbbf8d7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-01-23 David Holsgrove + + * gcc.target/microblaze/others/builtin-trap.c: New test, + 2014-01-23 Jakub Jelinek PR middle-end/58809 diff --git a/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c new file mode 100644 index 00000000000..fdcde1fa7de --- /dev/null +++ b/gcc/testsuite/gcc.target/microblaze/others/builtin-trap.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ + +void trap () +{ + __builtin_trap (); +} + +/* { dg-final { scan-assembler "brki\tr0,-1" } } */ \ No newline at end of file -- 2.30.2