[comp.sys.atari.st] Sozobon bug / some Dhrystone results

egisin@watmath.waterloo.edu (Eric Gisin) (12/31/88)

There is a serious bug in the Sozobon assembler.
The instruction "btst #0, Dn" generates a 32 bit immediate
operand instead of a 16 bit operand. When this is executed,
the extra second operand word is executed as an OR immediate instruction.
The "real" instruction following the btst is consumed as data.
I don't think the compiler generates btst's, but memcpy() has some.
The easiest fix would be changing memcpy, you can
probably change the btst to "moveq #0,Dtmp; btst Dtmp,Dn".

	---------

I compiled Dhrystone 2 under Sozobon and GNU C recently,
here are the results. GCC was using 16 bit "int"s.
I used an "optimized" version of the C string library with Sozobon and GNU.

	Compiler	Options		Dhrystones/second (with registers)
	Sozobon				1001
	Sozobon		-O		1066
	Mark Williams 3.0, optimized	1173
	GCC 1.30			956
	GCC 1.30 -O -fomit-frame-pointer 1282

Dhrystone version 1.n results are meaningless for optimizing compilers.
Dhrystone 2 has been posted twice to comp.arch,
I don't know if it is on any public servers.