cris.h (TARGET_HAS_BREAK, [...]): New macros.

* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
	New macros.
	* config/cris/cris.md ("trap"): Define, enabled for
	TARGET_TRAP_USING_BREAK8.
	* config/cris/cris.opt (mtrap-using-break8): New option.

From-SVN: r187942
This commit is contained in:
Hans-Peter Nilsson 2012-05-29 01:52:16 +00:00 committed by Hans-Peter Nilsson
parent 3d383eb787
commit 64f5af47c5
4 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2012-05-29 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
New macros.
* config/cris/cris.md ("trap"): Define, enabled for
TARGET_TRAP_USING_BREAK8.
* config/cris/cris.opt (mtrap-using-break8): New option.
2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/25137

View File

@ -302,9 +302,14 @@ extern int cris_cpu_version;
#define TARGET_HAS_MUL_INSNS (cris_cpu_version >= CRIS_CPU_NG)
#define TARGET_HAS_LZ (cris_cpu_version >= CRIS_CPU_ETRAX4)
#define TARGET_HAS_BREAK (cris_cpu_version >= CRIS_CPU_ETRAX4)
#define TARGET_HAS_SWAP (cris_cpu_version >= CRIS_CPU_SVINTO)
#define TARGET_V32 (cris_cpu_version >= CRIS_CPU_V32)
/* The "break" instruction was introduced with ETRAX 4. */
#define TARGET_TRAP_USING_BREAK8 \
(cris_trap_using_break8 == 2 ? TARGET_HAS_BREAK : cris_trap_using_break8)
/* Node: Storage Layout */
#define BITS_BIG_ENDIAN 0

View File

@ -3825,6 +3825,14 @@
""
"nop"
[(set_attr "cc" "none")])
;; Same as the gdb trap breakpoint, will cause a SIGTRAP for
;; cris-linux* and crisv32-linux*, as intended. Will work in
;; freestanding environments with sufficient framework.
(define_insn "trap"
[(trap_if (const_int 1) (const_int 8))]
"TARGET_TRAP_USING_BREAK8"
"break 8")
;; We need to stop accesses to the stack after the memory is
;; deallocated. Unfortunately, reorg doesn't look at naked clobbers,

View File

@ -175,6 +175,10 @@ Target Report RejectNegative Joined Var(cris_max_stackframe_str)
max-stackframe=
Target Report RejectNegative Joined Undocumented Var(cris_max_stackframe_str)
mtrap-using-break8
Target Report Var(cris_trap_using_break8) Init(2)
Emit traps as \"break 8\", default for CRIS v3 and up. If disabled, calls to abort() are used.
; TARGET_SVINTO: Currently this just affects alignment. FIXME:
; Redundant with TARGET_ALIGN_BY_32, or put machine stuff here?
; This and the others below could just as well be variables and