[NDS32] Refine load_multiple and store_multiple

Programming / Compilers / GCC - jasonwucj [138bc75d-0d04-0410-961f-82ee72b054a4] - 4 March 2018 16:27 EST

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.

f4474f8cf55 [NDS32] Refine load_multiple and store_multiple.
gcc/ChangeLog | 23 +
gcc/config/nds32/nds32-memory-manipulation.c | 87 +-
gcc/config/nds32/nds32-multiple.md | 3580 +++++++++++++++++++++++++-
gcc/config/nds32/nds32-predicates.c | 44 +-
gcc/config/nds32/nds32-protos.h | 6 +-
gcc/config/nds32/predicates.md | 22 +-
6 files changed, 3613 insertions(+), 149 deletions(-)

Upstream: gcc.gnu.org


  • Share