1960ad837b
Remove xtensa patches included in this release: 872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch 873-xtensa-fix-_Unwind_GetCFA.patch 876-xtensa-Fix-PR-target-78603.patch 877-xtensa-fix-PR-target-82181.patch Remove upstream patch: 942-asan-fix-missing-include-signal-h.patch Remove backported patches for glibc >= 2.26 943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch 944-sanitizer-linux.patch Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
68 lines
2.3 KiB
Diff
68 lines
2.3 KiB
Diff
From 2b4b5775554c91a63ccae4ee566db696b633652e Mon Sep 17 00:00:00 2001
|
|
From: jcmvbkbc <jcmvbkbc@138bc75d-0d04-0410-961f-82ee72b054a4>
|
|
Date: Wed, 10 Jun 2015 15:07:40 +0000
|
|
Subject: [PATCH] xtensa: implement trap pattern
|
|
|
|
2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
|
|
gcc/
|
|
* config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
|
|
* config/xtensa/xtensa.md (define_attr "type"): New type "trap".
|
|
(define_insn "trap"): New definition.
|
|
|
|
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224330 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
---
|
|
gcc/config/xtensa/xtensa.h | 1 +
|
|
gcc/config/xtensa/xtensa.md | 15 ++++++++++++++-
|
|
2 files changed, 15 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
|
|
index 615f741..fb8702c 100644
|
|
--- a/gcc/config/xtensa/xtensa.h
|
|
+++ b/gcc/config/xtensa/xtensa.h
|
|
@@ -67,6 +67,7 @@ extern unsigned xtensa_current_frame_size;
|
|
#define TARGET_THREADPTR XCHAL_HAVE_THREADPTR
|
|
#define TARGET_LOOPS XCHAL_HAVE_LOOPS
|
|
#define TARGET_WINDOWED_ABI (XSHAL_ABI == XTHAL_ABI_WINDOWED)
|
|
+#define TARGET_DEBUG XCHAL_HAVE_DEBUG
|
|
|
|
#define TARGET_DEFAULT \
|
|
((XCHAL_HAVE_L32R ? 0 : MASK_CONST16) | \
|
|
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
|
|
index 6d84384..a577aa3 100644
|
|
--- a/gcc/config/xtensa/xtensa.md
|
|
+++ b/gcc/config/xtensa/xtensa.md
|
|
@@ -86,7 +86,7 @@
|
|
;; Attributes.
|
|
|
|
(define_attr "type"
|
|
- "unknown,jump,call,load,store,move,arith,multi,nop,farith,fmadd,fconv,fload,fstore,mul16,mul32,div32,mac16,rsr,wsr,entry"
|
|
+ "unknown,jump,call,load,store,move,arith,multi,nop,farith,fmadd,fconv,fload,fstore,mul16,mul32,div32,mac16,rsr,wsr,entry,trap"
|
|
(const_string "unknown"))
|
|
|
|
(define_attr "mode"
|
|
@@ -1764,6 +1764,19 @@
|
|
[(set_attr "length" "0")
|
|
(set_attr "type" "nop")])
|
|
|
|
+(define_insn "trap"
|
|
+ [(trap_if (const_int 1) (const_int 0))]
|
|
+ ""
|
|
+{
|
|
+ if (TARGET_DEBUG)
|
|
+ return "break\t1, 15";
|
|
+ else
|
|
+ return (TARGET_DENSITY ? "ill.n" : "ill");
|
|
+}
|
|
+ [(set_attr "type" "trap")
|
|
+ (set_attr "mode" "none")
|
|
+ (set_attr "length" "3")])
|
|
+
|
|
;; Setting up a frame pointer is tricky for Xtensa because GCC doesn't
|
|
;; know if a frame pointer is required until the reload pass, and
|
|
;; because there may be an incoming argument value in the hard frame
|
|
--
|
|
2.1.4
|
|
|