Commit 9efb4993 by Richard Henderson Committed by Richard Henderson

mn10300: Explicitly represent MDR in multiply and divide.

Note that the mulsidi3_internal pattern is structured so
as to let the lower-subregs pass fully split the result.

From-SVN: r169008
parent c25a21f5
2011-01-19 Richard Henderson <rth@redhat.com>
* config/mn10300/mn10300.md (UNSPEC_EXT): New.
(throughput_42_latency_43): New reservation.
(mulsidi3, umulsidi3): New expanders.
(mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
the MDR register to allocation; separately allocate the low and
high parts of the DImode result.
(umulsidi3_internal): Similarly.
(*am33_mulsi3, *mn10300_mulsi3): Merge into ...
(*mulsi3): ... here. Clobber MDR as a scratch as necessary.
(udivsi3, umodsi3): Remove.
(udivmodsi4, divmodsi4): New expanders.
(*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
(*divmodsi4): Simiarly.
(ext_internal): New.
* config/mn10300/constraints.md ("z"): New constraint.
* config/mn10300/mn10300.h (MDR_REGNUM): Remove.
(FIXED_REGISTERS): Don't fix MDR.
......
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