]> git.ipfire.org Git - thirdparty/gcc.git/commit
arc: Update 64bit move split patterns.
authorClaudiu Zissulescu <claziss@synopsys.com>
Wed, 9 Jun 2021 09:12:57 +0000 (12:12 +0300)
committerClaudiu Zissulescu <claziss@synopsys.com>
Wed, 9 Jun 2021 09:12:57 +0000 (12:12 +0300)
commitc0ba7a8af5366c37241f20e8be41e362f7260389
tree6dff994f3ed1329cab83f5b4a77c8cfbb0e2de97
parentd4d38135b3137f1d3148138340e67bdcd7ea8216
arc: Update 64bit move split patterns.

ARCv2HS can use a limited number of instructions to implement 64bit
moves. The VADD2 is used as a 64bit move, the LDD/STD are 64 bit loads
and stores. All those instructions are not baseline, hence we need to
provide alternatives when they are not available or cannot be generate
due to instruction restriction.

This patch is cleaning up those move patterns, and updates splits
instruction lengths.

gcc/
2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (arc_split_move_p): New prototype.
* config/arc/arc.c (arc_split_move_p): New function.
(arc_split_move): Clean up.
* config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
(movdf_insn): Likewise.
* config/arc/simdext.md (mov<VWH>_insn): Likewise.

Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
gcc/config/arc/arc-protos.h
gcc/config/arc/arc.c
gcc/config/arc/arc.md
gcc/config/arc/simdext.md