r126972 - in /trunk/gcc: ChangeLog expmed.c exp...
rsandifo@gcc.gnu.org
rsandifo@gcc.gnu.org
Fri Jul 27 07:39:00 GMT 2007
Author: rsandifo
Date: Fri Jul 27 07:39:09 2007
New Revision: 126972
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126972
Log:
gcc/
* expr.h (store_bit_field): Don't return a value.
* expmed.c (check_predicate_volatile_ok): New function.
(store_bit_field_1): New function, extracted from store_bit_field.
Take a fallback_p argument and return true if the operation succeeded.
Only use store_fixed_bit_field if fallback_p. Don't recompute
mode_for_extraction; use op_mode instead. Try forcing memories
into registers if the insv expander fails.
(store_bit_field): Use store_bit_field_1 with fallback_p true.
Don't return a value.
(convert_extracted_bit_field): New function, extracted from
store_bit_field.
(extract_bit_field_1): Likewise. Take a fallback_p argument
and return NULL if the operation succeeded. Only use
extract_fixed_bit_field if fallback_p. Only calculate one
extraction mode. Combine code for extv and extzv. Try forcing
memories into registers if the ext(z)v expander fails.
(extract_bit_field): Use extract_bit_field_1 with fallback_p true.
gcc/testsuite/
* gcc.target/mips/ins-1.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/mips/ins-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expmed.c
trunk/gcc/expr.h
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-cvs
mailing list