diff options
author | Zack Weinberg <zackw@panix.com> | 2001-08-22 00:33:33 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2001-08-22 00:33:33 +0000 |
commit | da92057001929e2c650454e11d828d4296217e3d (patch) | |
tree | 129eec34d330cb3fc70326b18b8ff46f6e80e5e2 /gcc/expr.h | |
parent | d8693c6fa425fecaf6570114f1cd69aaf3c08043 (diff) | |
download | gcc-da92057001929e2c650454e11d828d4296217e3d.zip gcc-da92057001929e2c650454e11d828d4296217e3d.tar.gz gcc-da92057001929e2c650454e11d828d4296217e3d.tar.bz2 |
expmed.c (mode_for_extraction): New function.
* expmed.c (mode_for_extraction): New function.
(store_bit_field, extract_bit_field): Use it.
* expr.h: Prototype it and provide an enum for its first argument.
* combine.c, function.c, recog.c: Don't include insn-codes.h.
Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
and digging through the insn_data tables.
* Makefile.in: Update dependencies.
From-SVN: r45086
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -715,6 +715,14 @@ extern rtx hard_libcall_value PARAMS ((enum machine_mode)); of STACK_BOUNDARY / BITS_PER_UNIT. */ extern rtx round_push PARAMS ((rtx)); +/* Return the mode desired by operand N of a particular bitfield + insert/extract insn, or MAX_MACHINE_MODE if no such insn is + available. */ + +enum extraction_pattern { EP_insv, EP_extv, EP_extzv }; +extern enum machine_mode +mode_for_extraction PARAMS ((enum extraction_pattern, int)); + extern rtx store_bit_field PARAMS ((rtx, unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT, enum machine_mode, rtx, |