koreth@panarthea.ebay.sun.com (Steven Grimm) (08/15/90)
Submitted-by: nike.cair.du.edu!onecom!wldrdg!hans (Johann Ruegg) Posting-number: Volume 3, Issue 87 Archive-name: sozo1.2pat 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