[NDS32] Refine load_multiple and store_multiple.
authorKito Cheng <kito.cheng@gmail.com>
Sun, 4 Mar 2018 16:27:34 +0000 (16:27 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Sun, 4 Mar 2018 16:27:34 +0000 (16:27 +0000)
commit32a6f4f4886bdd41db8c2b342316da42e9c5f392
treeb6c54673de41634c966103d1f89bc9c25d333fc7
parent264159d28c22a8d6eb35b47b65427654614772b9
[NDS32] Refine load_multiple and store_multiple.

gcc/
* config/nds32/nds32-protos.h
(nds32_expand_load_multiple): New arguments.
(nds32_expand_store_multiple): Ditto.
(nds32_valid_multiple_load_store): Rename ...
(nds32_valid_multiple_load_store_p): ... to this.
* config/nds32/nds32-memory-manipulation.c
(nds32_expand_load_multiple): Refine implementation.
(nds32_expand_store_multiple): Ditto.
* config/nds32/nds32-multiple.md
(load_multiple): Update nds32_expand_load_multiple interface.
(store_multiple): Update nds32_expand_store_multiple interface.
* config/nds32/nds32-predicates.c
(nds32_valid_multiple_load_store): Rename ...
(nds32_valid_multiple_load_store_p): ... to this and refine
implementation.
* config/nds32/predicates.md
(nds32_load_multiple_and_update_address_operation): New predicate.
(nds32_store_multiple_and_update_address_operation): New predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
From-SVN: r258234
gcc/ChangeLog
gcc/config/nds32/nds32-memory-manipulation.c
gcc/config/nds32/nds32-multiple.md
gcc/config/nds32/nds32-predicates.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/predicates.md