[hatari-devel] Movem and cycles

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi,

A question about movem.

Movem is a very frequent instruction on falcon true color, used very often.

I really think hatari doesn't count all the memory access with movem.

an example

This trace is with the 68030 CPU, no prefetch, no cycle exact

cpu video_cyc=119680 896@116 : 00052DE6 4cde 1fff MOVEM.L (A6)+,D0-D7/A0-A4
cpu video_cyc=119692 908@116 : 00052DEA 48e5 fff8 MOVEM.L D0-D7/A0-A4,-(A5)
cpu video_cyc=119704 920@116 : 00052DEE 4cde 1fff MOVEM.L (A6)+,D0-D7/A0-A4
cpu video_cyc=119716 932@116 : 00052DF2 48e5 fff8 MOVEM.L D0-D7/A0-A4,-(A5)
cpu video_cyc=119728 944@116 : 00052DF6 4cde 00ff MOVEM.L (A6)+,D0-D7
cpu video_cyc=119740 956@116 : 00052DFA 48e5 ff00 MOVEM.L D0-D7,-(A5)

it seems to count only 12 cycles each time (wich it totally wrong) and doesn't seem to take into account the memory access.


Another example with 68030 prefetch CPU, no cycle exact

cpu video_cyc= 32416 672@ 31 : 0005267A dbfc 0004 3448 ADDA.L #$00043448,A5
cpu video_cyc= 32428 684@ 31 : 00052680 4cde 1fff MOVEM.L (A6)+,D0-D7/A0-A4
cpu video_cyc= 32440 696@ 31 : 00052684 48e5 fff8 MOVEM.L D0-D7/A0-A4,-(A5)
cpu video_cyc= 32452 708@ 31 : 00052688 4cde 1fff MOVEM.L (A6)+,D0-D7/A0-A4
cpu video_cyc= 32464 720@ 31 : 0005268C 48e5 fff8 MOVEM.L D0-D7/A0-A4,-(A5)
cpu video_cyc= 32476 732@ 31 : 00052690 4cde 1fff MOVEM.L (A6)+,D0-D7/A0-A4
cpu video_cyc= 32488 744@ 31 : 00052694 48e5 fff8 MOVEM.L D0-D7/A0-A4,-(A5)

Again, it seems to count only 12 cycles.

Isn't there a quick fix to count all the memory access time ?

I know hatari 68030 is not accurate, but it'd be better is cycles where at least close to their nominal value, no ?

With my latest code, I've got 2 VBLs difference between hatari and real Falcon.

Regards

Laurent






Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/