aboutsummaryrefslogtreecommitdiff
path: root/gcc/targhooks.c
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2010-10-17 19:27:53 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2010-10-17 19:27:53 +0400
commitabd26bfbf3434e296f7dd412557f925e7ac512c5 (patch)
tree8353f8418ac7a3898efaae0ba10e35c172004549 /gcc/targhooks.c
parent88c87359fa92a1869402a4f0b45517e071570174 (diff)
downloadgcc-abd26bfbf3434e296f7dd412557f925e7ac512c5.zip
gcc-abd26bfbf3434e296f7dd412557f925e7ac512c5.tar.gz
gcc-abd26bfbf3434e296f7dd412557f925e7ac512c5.tar.bz2
target.def (preferred_output_reload_class): New hook.
* target.def (preferred_output_reload_class): New hook. * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document. * doc/tm.texi: Regenerate. * targhooks.c (default_preferred_output_reload_class): New function. * targhooks.h (default_preferred_output_reload_class): Declare. * reload.c (find_dummy_reload): Change rclass argument type from enum reg_class to reg_class_t. Change this_alternative array type from enum reg_class to reg_class_t. Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook. (push_reload): Change preferred_class variable type to reg_class_t. Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook. * recog.c (reg_fits_class_p): Change result type to bool. Change cl argument type from enum reg_class to reg_class_t. Use HARD_REGISTER_NUM_P predicate. * recog.h (reg_fits_class_p): Update prototype. * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove. * config/i386/i386-protos.h (ix86_preferred_output_reload_class): Remove. * config/i386/i386.c (ix86_preferred_output_reload_class): Make static. Change regclass argument and result types from enum reg_class to reg_class_t. (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. From-SVN: r165588
Diffstat (limited to 'gcc/targhooks.c')
-rw-r--r--gcc/targhooks.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 7a3dda3..5948e3f 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -1243,6 +1243,19 @@ default_preferred_reload_class (rtx x ATTRIBUTE_UNUSED,
#endif
}
+/* The default implementation of TARGET_OUTPUT_PREFERRED_RELOAD_CLASS. */
+
+reg_class_t
+default_preferred_output_reload_class (rtx x ATTRIBUTE_UNUSED,
+ reg_class_t rclass)
+{
+#ifdef PREFERRED_OUTPUT_RELOAD_CLASS
+ return PREFERRED_OUTPUT_RELOAD_CLASS (x, (enum reg_class) rclass);
+#else
+ return rclass;
+#endif
+}
+
/* The default implementation of TARGET_CLASS_LIKELY_SPILLED_P. */
bool