summaryrefslogtreecommitdiff
path: root/gcc/reload.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 19:03:43 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 19:03:43 +0000
commit1ad9923aaae1c56d6fbc5e347e4f6621f4a0179a (patch)
tree17257bf331c6a9f21e3d19df584d3f0ecf1671bb /gcc/reload.h
parent3b9c3a165502b5f44f2ea84940f1347101b32a05 (diff)
downloadgcc-1ad9923aaae1c56d6fbc5e347e4f6621f4a0179a.tar.gz
gcc/
* reload.h (target_reload): Add x_cached_reg_save_code and x_cached_reg_restore_code. * caller-save.c (cached_reg_save_code, cached_reg_restore_code): Redefine as macros. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162106 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.h')
-rw-r--r--gcc/reload.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/reload.h b/gcc/reload.h
index 16d52d95a5c..01bbfb1bbc6 100644
--- a/gcc/reload.h
+++ b/gcc/reload.h
@@ -182,6 +182,14 @@ struct target_reload {
enum machine_mode (x_regno_save_mode
[FIRST_PSEUDO_REGISTER]
[MAX_MOVE_MAX / MIN_UNITS_PER_WORD + 1]);
+
+ /* We will only make a register eligible for caller-save if it can be
+ saved in its widest mode with a simple SET insn as long as the memory
+ address is valid. We record the INSN_CODE is those insns here since
+ when we emit them, the addresses might not be valid, so they might not
+ be recognized. */
+ int x_cached_reg_save_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE];
+ int x_cached_reg_restore_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE];
};
extern struct target_reload default_target_reload;