[Oberon] Constant folding, Re: Bit-fiddling: SETs and type casts in Oberon-07
Skulski, Wojciech
skulski at pas.rochester.edu
Tue Aug 9 13:10:37 CEST 2022
> Mine does. I obviously added the code to do so but forgot that I did
Andreas? Time for a small fix of yours?
Wojtek
________________________________________
From: Oberon [oberon-bounces at lists.inf.ethz.ch] on behalf of joerg.straube at iaeth.ch [joerg.straube at iaeth.ch]
Sent: Tuesday, August 9, 2022 5:09 AM
To: ETH Oberon and related systems
Subject: [EXT] Re: [Oberon] Constant folding, Re: Bit-fiddling: SETs and type casts in Oberon-07
Oops. Mine does. I obviously added the code to do so but forgot that I did 😊
Jörg
Von: Oberon <oberon-bounces at lists.inf.ethz.ch> im Auftrag von Paul Reed <paulreed at paddedcell.com>
Datum: Dienstag, 9. August 2022 um 10:25
An: ETH Oberon and related systems <oberon at lists.inf.ethz.ch>
Betreff: [Oberon] Constant folding, Re: Bit-fiddling: SETs and type casts in Oberon-07
Hi Jörg,
> ... CHR( ORD(ch) - ORD(“a”) + ORD(“A”) );
>
> ...the compiler folds these constants into one value
Should perhaps, but doesn't (the Oberon-07 compilers anyway): there is
some associative and even commutative constant folding which could be
done, but isn't currently. RISC ORTool gives:
PROCEDURE P;
VAR ch: CHAR;
BEGIN ch := CHR( ORD(ch) - ORD("a") + ORD("A") );
END P;
2 90E00004 LDR R0 SP 4
3 40090061 SUB R0 R0 97
4 40080041 ADD R0 R0 65
5 B0E00004 STR R0 SP 4
Cheers,
Paul
More information about the Oberon
mailing list