summaryrefslogtreecommitdiff
path: root/gcc/target.def
diff options
context:
space:
mode:
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-05 22:51:36 +0000
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-05 22:51:36 +0000
commite9eaaa6a5083499339591cb448d78ecb474d50e2 (patch)
tree0143c588ed170c91e0177aa70b6d00bbdcffd76a /gcc/target.def
parent287cdcf4fae93b2baa3dfe005d13fe837695b5c5 (diff)
downloadgcc-e9eaaa6a5083499339591cb448d78ecb474d50e2.tar.gz
Add call_fusage_contains_non_callee_clobbers hook
2014-05-05 Radovan Obradovic <robradovic@mips.com> Tom de Vries <tom@codesourcery.com> * target.def (call_fusage_contains_non_callee_clobbers): New DEFHOOKPOD. * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register Hooks to @menu. (@node Miscellaneous Register Hooks): New node. (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook. * doc/tm.texi: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210085 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.def')
-rw-r--r--gcc/target.def16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/target.def b/gcc/target.def
index 793f12ddfe1..7e0c96e472c 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -5142,6 +5142,22 @@ FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and the PIC_OFFSET_TABLE_REGNUM.",
void, (bitmap regs),
hook_void_bitmap)
+/* Targets should define this target hook to mark that non-callee clobbers are
+ present in CALL_INSN_FUNCTION_USAGE for all the calls in the current
+ function. */
+DEFHOOKPOD
+(call_fusage_contains_non_callee_clobbers,
+ "set to true if all the calls in the current function contain clobbers in\n\
+CALL_INSN_FUNCTION_USAGE for the registers that are clobbered by the call\n\
+rather than by the callee, and are not already set or clobbered in the call\n\
+pattern. Examples of such registers are registers used in PLTs and stubs,\n\
+and temporary registers used in the call instruction but not present in the\n\
+rtl pattern. Another way to formulate it is the registers not present in the\n\
+rtl pattern that are clobbered by the call assuming the callee does not\n\
+clobber any register. The default version of this hook is set to false.",
+ bool,
+ false)
+
/* Fill in additional registers set up by prologue into a regset. */
DEFHOOK
(set_up_by_prologue,