From cc14227fd9aadda127a94a28d34eaa4249df3f12 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 12 Jul 2010 19:03:43 +0000 Subject: reload.h (target_reload): Add x_cached_reg_save_code and x_cached_reg_restore_code. 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. From-SVN: r162106 --- gcc/reload.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/reload.h') diff --git a/gcc/reload.h b/gcc/reload.h index 16d52d9..01bbfb1 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; -- cgit v1.1