[Oberon] IMPORT Modules: why does order matter?
Andreas Pirklbauer
andreas_pirklbauer at yahoo.com
Sun Mar 3 00:29:51 CET 2019
> I believe that in Experimental Oberon … also supports both Numerical case statements.
This is correct, see [1] and [2] for more information. But *unlike* the Astrobe for RISC implementation (see www.astrobe.com), the Experimental Oberon version does *not* make use of the modified Branch Conditional (BC) instruction that is used in the Astrobe compiler (the BC instruction of the original RISC is of the form B,cond [Rn], whereas Astrobe’s adds one of the form B,cond PC, [Rn], where the target of the branch is computed by adding the contents of a register to the current program counter - this change reduces the average overhead of any selection in a CASE statement from about 9 or 10 down to 6 instructions, making the numeric CASE statement considerably more efficient).
Should that modified BC instruction (B,cond PC, [Rn]) become part of the “official” RISC architecture one day (as published on www.projectoberon.com), Experimental Oberon would switch over and also make use of it.
-ap
[1] http://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/Enhanced-FPGA-Oberon07-compiler.pdf
[2] http://github.com/andreaspirklbauer/Oberon-numeric-case-statement
More information about the Oberon
mailing list