[comp.sys.atari.st] Bug fix for top

mj@myrias.com (Michal Jaegermann) (11/23/89)

The following information
>> From uunet!isis!onecom!wldrdg!hans Wed Nov 22 01:25:24 1989
I am just a messenger. :-)
    mj@myrias.COM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Here is a bug fix for "top" in Sozobon release 1.2.  You will need it if
you use the -O option at all.

Basically, several calls to the function "uses" or "sets" were incorrectly
coded with register masks instead of register numbers.  The fix is to
take out the RM() calls in several places.

Also, line 299 of peep3.c should call "uses" instead of "sets" with the
first parameter being "i2" not "i3".


In "peep2.c", make the following changes:

688c688
< 			if (uses(i2, RM(dr1)))
---
> 			if (uses(i2, dr1))
736c736
< 			if (uses(i2, RM(dr1)))
---
> 			if (uses(i2, dr1))
784c784
< 			if (uses(i2, RM(dr1)))
---
> 			if (uses(i2, dr1))

In "peep3.c", make the following changes:

299c299
< 	    !sets(i3, RM(i3->src.areg))) {
---
> 	    !uses(i2, i3->src.areg)) {
333c333
< 				if (sets(i3, RM(rm)))
---
> 				if (sets(i3, rm))
400c400
< 				if (sets(i3, RM(rm)))
---
> 				if (sets(i3, rm))
467c467
< 				if (sets(i3, RM(rm)))
---
> 				if (sets(i3, rm))


After you have made these changes, recompile the optimizer "top" without the
-O option (dont use the old "top").  Then install this fixed version of "top".
Now recompile again with the -O option (e.g. using the newly make "top").
Now install this "top" as your new version.

	Johann Ruegg
	Sozobon Ltd.
	uunet!isis!onecom!wldrdg!hans