summaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authoraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-09 13:43:11 +0000
committeraesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-09 13:43:11 +0000
commit747bf50d2641442948a5405c9d5b6f844fa1e898 (patch)
tree1e2b360a3708a9b833a49b11cda5009cb7f10ed9 /gcc/target.h
parentde4eeeaf0889c5c2d55be8e6c4c253cedfb49c72 (diff)
downloadgcc-747bf50d2641442948a5405c9d5b6f844fa1e898.tar.gz
* target.h (struct gcc_target): Add hard_regno_scratch_ok field.
* target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New. (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK. * targhooks.c (default_hard_regno_scratch_ok): New function. * targhooks.h (default_hard_regno_scratch_ok): Declare function. * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook. * recog.c: Include "target.h". (peep2_find_free_register): Add check for global regs. Add target specific check. * Makefile.in (recog.o): Depend on target.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137657 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 11852430c8d..d1642ef9497 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -872,6 +872,10 @@ struct gcc_target
but will be later. */
void (* instantiate_decls) (void);
+ /* Return true if is OK to use a hard register REGNO as scratch register
+ in peephole2. */
+ bool (* hard_regno_scratch_ok) (unsigned int regno);
+
/* Functions specific to the C family of frontends. */
struct c {
/* Return machine mode for non-standard suffix