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