Commit b1efde2a by Richard Henderson Committed by Richard Henderson

mn10300: Re-write move patterns.

Use the "D" and "A" constraints, and the enabled attribute to
unify all ofthe integer move patterns.  Delete the fake double
word move patterns; let the middle-end generate subregs as required.

Unfortunately, this somehow exposes a register pressure problem
with the udivmod pattern.  This is properly fixed with subsequent
patches that expose the MDR register.

In the meantime it is highly desirable to to preserve bisect-ability
of the patch series, so disable this pattern for AM30.

From-SVN: r169004
parent 036c8f37
2011-01-19 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
(*movqi_internal): ... here.
(*am33_movhi, *mn10300_movhi): Merge into...
(*movhi_internal): ... here.
(*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
as the source/destination of moves from/to SP.
(movsf): Only allow for AM33-2.
(*movsf_internal): Use "r" instead of "dax"; use "F" instead of
any integer constant constraint. Only allow for AM33-2. Tidy
all of the alternative outputs.
(movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
(udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
for MN103.
(udivsi3, umodsi3): New patterns for MN103 only.
2011-01-19 Joern Rennecke <amylaar@spamcop.net>
* doc/tm.texi.in: Spell out that a lack of register class unions
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment