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.