diff options
author | claziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-12-16 12:56:09 +0000 |
---|---|---|
committer | claziss <claziss@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-12-16 12:56:09 +0000 |
commit | f54ef0c6745b2d4d4a0812c3c35ef1cee3dcf347 (patch) | |
tree | 1eac28fb70034876808df669e37acd4f99b4f50c /libgcc | |
parent | 2dd10d1bb9298d05a8d84649dcdd06f65e6af49c (diff) | |
download | gcc-f54ef0c6745b2d4d4a0812c3c35ef1cee3dcf347.tar.gz |
[ARC] Rework ARC600 64-bit multiplication patterns.
Previously users of mulsidi_600 and umulsidi_600 had to take care of
moving the multiplication result into the final destination themselves
(from the MUL64_OUT_REG register). This commit converts these two
instruction patterns into insn_and_split patterns that now take the
final destination as an extra operand. The insn_and_split patterns
generate the multiplication using two new multiplication instruction
patterns, then generate the move of the result from the MUL64_OUT_REG
register into the final destination.
This is a clean up commit, there should be no user visible changes
after this commit.
2016-12-16 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md (mulsidi_600): Change to insn_and_split,
generate new mul64 insn for core multiplication work.
(umulsidi_600): Likewise, but use mulu64 insn.
(mul64): New pattern, content taken from old mulsidi_600 insn
pattern.
(mulu64): Likewise, but using umulsidi_600.
(mulsidi3): Remove move to destination, this is now handled by
mulsidi_600 insn_and_split.
(umulsidi3): Likewise, but using umulsidi_600.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243741 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions