Subject: Re: _I_CALL_TOP
To: None <tim@flibble.org>
From: Ignatios Souvatzis <is@beverly.rhein.de>
List: port-amiga
Date: 03/04/1997 23:02:12
Hi Tim,

> 
> I've been using ssh for w while now, and when I upgraded my processor it
> an '060 some element of its operation didn't seem to gain the same
> increase in poerformance as the rest of my system.
> 
> In particular the key generation when it starts up is extremely slow.
> 
> Looking at this it seemed to be the the kernel that was chewing CPU
> time.
> 
> One profiled kernel later I discovered that the call that was typing up
> all this CPU time was
> 
> _I_CALL_TOP
> 
> This is part of the 060SP package.
> 
> 
> Can someone tell me what this call does and why it chews CPU so much?

yes.

thats the entry point (to be precise, the base of the jump table) of
Motorolas integer 68060 support program.

What happens, is that ssh is "optimized" with assembler routines for
68020/030/040, and uses an integer instruction there excessively
(mul{u,s}.l <ea>,dm:dn) which must be software emulated on the 68060.

The trap & library execute at about 111000 emulations/s with netbsd-1.2
(150000 with -current due to the enabled branch cache) on a 68060/50
machine. 

Solution is to compile a special 68060 version of the ssh stuff in a way that it
doesn't use this instruction anymore. Detailed docs are on Motorolas web
site (http://www.mot.com/). 

I'm occupied by a bunch of other things and dont have time enough to do
it myself right now.

	-is
	Ignatios Souvatzis