That seems to be exactly the number I see on a MCF52259 running at 80MHz accessing GPIO with this code, and optimizations turned on:
MCF_GPIO_PQSPAR = 0;
MCF_GPIO_DDRQS = 0x01;
while (1) {
MCF_GPIO_SETQS = 0x01;
MCF_GPIO_CLRQS = ~0x01;
}
Some of the MCF52259 peripherals (mini-flexbus, uarts, i2c, spi, dma timers, etc. -- see the excellent figure 7-1 in the Reference Manual) are clocked before the "fsys divide by 2", so if you can get them involved somehow, you might do better; GPIO is clocked after the "fsys divide by 2".
One thing to keep in mind is that my understanding is that the "flash speculation" works on the MCF52259, so I no longer disable it (i.e., no longer set FLASHBAR[6] = 1) during startup, and as a result I see a 10% performance increase, clock-for-clock, on CPU intensive work vs. MCF5222x and MCF5223x.
-- Rich