gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Jul 2007 07:39:09 +0000 (07:39 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Jul 2007 07:39:09 +0000 (07:39 +0000)
commit361223260284576c96bd022e66409ae36b5193a6
tree8ce86442f4e4bba58a4e2f1291077a1a62140ae8
parent4d1af246f5ee5957c9909b7cef57e9d4659e0daa
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126972 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/expmed.c
gcc/expr.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/ins-1.c [new file with mode: 0644]