[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