diff options
author | nemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-28 20:32:20 +0000 |
---|---|---|
committer | nemet <nemet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-28 20:32:20 +0000 |
commit | fd95fba452ea7e981bbf13518b730c332c030dc3 (patch) | |
tree | b59a2ff0c0c65abbe656b96ae1d8a37028083f6b /gcc/rtl.h | |
parent | 136335a28f44c3eeab45ca715f30c6dcfe59e1b4 (diff) | |
download | gcc-fd95fba452ea7e981bbf13518b730c332c030dc3.tar.gz |
* rtl.h (truncated_to_mode): Declare it.
(struct rtl_hooks): Add reg_truncated_to_mode hook.
* rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
(RTL_HOOKS_INITIALIZER): Include it.
* rtlhooks.c (reg_truncated_to_mode_general): New function.
* combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
reg_truncated_to_mode.
* rtlanal.c (truncated_to_mode): Define it.
* simplify-rtx.c (simplify_unary_operation_1): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111573 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h index 6e17a224621..9c088e92598 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1047,6 +1047,7 @@ extern unsigned int subreg_regno (rtx); extern unsigned HOST_WIDE_INT nonzero_bits (rtx, enum machine_mode); extern unsigned int num_sign_bit_copies (rtx, enum machine_mode); extern bool constant_pool_constant_p (rtx); +extern bool truncated_to_mode (enum machine_mode, rtx); /* 1 if RTX is a subreg containing a reg that is already known to be @@ -2277,8 +2278,9 @@ struct rtl_hooks unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT *); rtx (*reg_num_sign_bit_copies) (rtx, enum machine_mode, rtx, enum machine_mode, unsigned int, unsigned int *); + bool (*reg_truncated_to_mode) (enum machine_mode, rtx); - /* Whenever you add entries here, make sure you adjust hosthooks-def.h. */ + /* Whenever you add entries here, make sure you adjust rtlhooks-def.h. */ }; /* Each pass can provide its own. */ |