Re: [hatari-devel] WinUAE CPU core zero cycles

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


Hi,

On tiistai 19 helmikuu 2013, laurent.sallafranque@xxxxxxx wrote:
> Eero, can you tell me which instructions return 0 cycles ?
> 
> I know I didn't finish the job for Fpu and MMU instructions, but if the
> instructions you speak about are in the 68030 CPU, I'd be interrested.

This is from TOS v4.x bootup:
$e3ddc4 : 3047                                 movea.w   d7,a0                       
inf% (3, 0, 0)
$e4929c : c042                                 and.w     d2,d0                       
inf% (9, 0, 0)
$e4929c : c042                                 and.w     d2,d0                       
inf% (10, 0, 0)
$e4929c : c042                                 and.w     d2,d0                       
inf% (11, 0, 0)
$e4929c : c042                                 and.w     d2,d0                       
inf% (12, 0, 0)
$e490ec : 7200                                 moveq     #0,d1                       
inf% (1, 0, 0)
$e490f4 : 7400                                 moveq     #0,d2                       
inf% (1, 0, 0)
$e25bf4 : 7218                                 moveq     #$18,d1                     
inf% (3, 0, 0)
$e25c20 : c041                                 and.w     d1,d0                       
inf% (3, 0, 0)
$e1fb30 : 200d                                 move.l    a5,d0                       
inf% (5, 0, 0)
$e1fa54 : 200c                                 move.l    a4,d0                       
inf% (5, 0, 0)
$e1fb30 : 200d                                 move.l    a5,d0                       
inf% (6, 0, 0)
$e25bf4 : 7218                                 moveq     #$18,d1                     
inf% (4, 0, 0)
$e25c20 : c041                                 and.w     d1,d0                       
inf% (4, 0, 0)
$e1fa54 : 200c                                 move.l    a4,d0                       
inf% (6, 0, 0)

This from latest EmuTOS CVS snapshot bootup on Falcon mode:
$e0b912 : 5242                                 addq.w    #1,d2                      
0.00% (6, 0, 0)
$e0dd1c : b042                                 cmp.w     d2,d0                      
0.00% (1, 0, 0)
$e0dc1c : 3801                                 move.w    d1,d4                      
0.00% (1, 0, 0)
$e0dc44 : 3608                                 move.w    a0,d3                      
0.00% (1, 0, 0)
$e05854 : c001                                 and.b     d1,d0                      
0.00% (1, 0, 0)
$e0589e : 8001                                 or.b      d1,d0                      
0.00% (1, 0, 0)
$e05f64 : d082                                 add.l     d2,d0                      
0.00% (1, 0, 0)
$e05f62 : 2002                                 move.l    d2,d0                      
0.00% (2, 2, 1)
....
$e0dd1c : b042                                 cmp.w     d2,d0                      
0.00% (56, 28, 0)
$e139d4 : 2245                                 movea.l   d5,a1                      
0.00% (1, 0, 0)
$e136e4 : 3800                                 move.w    d0,d4                      
0.00% (1, 0, 0)
$e13a48 : 4443                                 neg.w     d3                         
0.00% (75, 0, 0)

I.e. it's the basic instructions which would seem to have problems
with cycles counter:
	move, neg. or, and, add, cmp...

The interesting thing is that some of them (at least add, move, cmp)
have cycles sometimes.

As debugger is called right before DSP and DSP uses the same call to
get cycles, CPU vs. DSP ratio is most likely pretty bogus because of
this. :-/


If you want to see the same output, update to latest Hatari version,
change DEBUG in start of src/debug/profile.c to 1 and do:
	echo "profiling on" > profile.ini
	hatari --parse profile.ini --machine falcon --tos tos404.img


	- Eero



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