[PATCH] more problems with newlib/libc/machine/m68k/memcpy.S
Aaron J. Grier
agrier@poofygoof.com
Wed Feb 10 16:49:00 GMT 2010
On Wed, Feb 10, 2010 at 11:21:15AM +0100, Josef Wolf wrote:
> On Tue, Feb 09, 2010 at 05:10:38PM -0800, Aaron J. Grier wrote:
> > On Tue, Feb 09, 2010 at 03:15:11PM +0100, Josef Wolf wrote:
> > > 3. -mcpu32 seems to imply -mc68020.
> >
> > it's been this way for years and is arguably incorrect, as neither
> > instruction set is a superset of the other.
>
> I don't think there is a proper way to fix this, since it depends not
> only on the CPU, but also on how memory is connected.
I was commenting on -mcpu32 implying -mc68020. the two share a subset
of instructions, but optimizations for one do not necessarily imply
benefit for the other.
> IMHO, the best option is to be conservative. It's better to have
> suboptimal code on some CPU than get address errors on some other CPU.
yes, absolutely. working code is always preferred to non-working code.
:) unaligned transfers not handled by hardware must be handled by
software, even if it's non-optimal.
> > I have also noticed that there is a point of diminishing returns for
> > jumping through alignment hoops. depending on the CPU speed, it may
> > be faster to do a zero-overhead byte copy for small transfers rather
> > than go through alignment setups.
>
> Does this really depend on CPU speed? I think CPU-type and existence of
> caches is the distinguishing factor here.
thinking about this, you are correct, it's not affected by CPU speed.
the overhead is a fixed percentage.
I don't believe any CPU32 pas has cache to speak of (unless you count
instruction fetch buffer) but 68020 does. (I think 68010 has a loop
mode but no cache?)
--
Aaron J. Grier | "Not your ordinary poofy goof." | agrier@poofygoof.com
More information about the Newlib
mailing list