版本发布 6
Fast ``Kogge Stone`` adder from Håkon Hægland drops time to execute one RiscV instruction in ``Ban.java``. **Rasken** means fast in Norwegian. Subroutine definitions and trace back from Phil in ``RiscV.java`` with shadow call stack to check return address is correct on subroutine return during emulation.
We know have the capability to ``stop()`` the execution of the program, write to a simulated stdout using ``out()``, and structured programming statements such as ``if`` and ``for`` in the assembler implemented in ``RiscV.java``. Using these capabilities I have successfully implemented a version of ``Insertion Sort`` in ``RiscV.java`` which also runs under the register transfer level implementation of ``RiscV`` in ``Ban.java`` . Following the convention of using west Ireland place names for releases, welcome to release ``Loop Head`` in County Clare.
Bubble Sort in the ``Ban.java`` implementation of ``RiscV.java`` works! First I wrote ``BubbleSort`` in ``RiscV`` assembler in ``RiscV.java`` then assembled it to get the corresponding machine code. I put the resulting machine code in ``Ban.java`` and used the Gate level implementation of ``RiscV.java`` held in ``Ban.java`` to run ``Bubble Sort``. ``Donald Knuth`` calls ``Bubble Sort`` the most useless sorting algorithm but I disagree: when I saw the numbers come out sorted into order I was convinced that everything was working as expected which was jolly useful. The release naming convention is one of Irish west coast place names: ``ChatGPT`` tells me that ``Sligo, Ireland`` means ``Place of Shells`` which would be a better name for an implementation of ``Shell Sort``, not ``Bubble Sort`` - but there again, perhaps that is the next test to write as soon as the assembler has some structured programming facilities in it such as **for** loops and **if** statements.
Mjaf - Btree deletion
Fibonacci numbers from RISC-V
Risc V @ 32I. Ban @ interpreting Risc V Fibonacci.