[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] gcc 68000 vs 68020-60 vs 68060 comparison



Vincent Rivière a écrit :
As we discussed long ago, another big source of speed is... alignment of longs on 32-bit boundaries. We have seen that such aligned longs are faster than unaligned in the FastRAM. In order to respect the existing TOS APIs, our GCC never tries to align longs on 32-bit. So they are randomly slow or fast. Enabling alignment would provide more speed. But the OS public structures should be protected to keep unaligned and compatible. This will be a full project. I made a quick hack in EmuTOS for ColdFire to align the RAM returned by Malloc() on a 32-bit boundary, the performance was significantly better.
Actually, this is even true for STram on the Falcon030. 4-byte aligned STram access is 10%-20% faster. In Animator, I finally enforced 4-byte alignment for all allocated blocks, but the key performance boost was aligning output of uncompressed video frames into screen memory.