[Oberon] PO2013 compiler and SET operations
Hellwig Geisse
hellwig.geisse at mni.thm.de
Thu Jul 30 10:39:49 CEST 2020
On Do, 2020-07-30 at 07:05 +0200, Jörg wrote:
>
> I think ORG.Set*(VAR x, y: Item) is the culprit.
>
> Currently, in the end it is
> IF x.mode = ORB.Const THEN
> IF x.a # 0 THEN Put1(Xor, y.r, y.r, -1); Put1a(And, RH-1, y.r, x.a) END ;
> x.mode := Reg; x.r := RH-1
> ELSE DEC(RH); Put0(Ann, RH-1, x.r, y.r)
> END
>
> But is should be
> IF x.mode = ORB.Const THEN
> IF x.a # 0 THEN Put1(Xor, y.r, y.r, -1); Put1a(And, RH-1, y.r, x.a) END ;
> x.mode := Reg;
> ELSE DEC(RH); Put0(Ann, RH-1, x.r, y.r)
> END;
> x.r := RH-1
>
That's it - thanks a lot!
Hellwig
More information about the Oberon
mailing list