This is the mail archive of the
mailing list for the GCC project.
Re: Incorrect code using gcc 2.8.x for Motorola 5200 Coldfire
- To: John Vickers <jvickers at acorn dot com>
- Subject: Re: Incorrect code using gcc 2.8.x for Motorola 5200 Coldfire
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Thu, 03 Sep 1998 10:00:12 -0600
- cc: Russ Fellows <rfellows at intellistor dot com>, Richard Henderson <rth at cygnus dot com>, egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <35EE76E1.9E6BB7CC@acorn.com>you write:
> If you do any kind of operation with an address reg destination,
> all the bits (QI,HI,SI)
> are changed - that's how it's built.
And for GCC's purposes that is fine. Bits outside of the specified
mode are undefined unless the rtl is wrapped in a strict_low_part.
> The machine instructions you probably want on CF
> for i->a are lea %a0:w,%1 and subl %0,%0.
> If move_qimode punts to move_simode_const, the decisions about which
> instruction is best for what value & what target stay in one place.
It does not punt to simode_const. One could argue that it should, but
that's separate from the issue at hand, similarly for tweaking the
patterns to generate more efficient code.