[Oberon] Question on ORG.SaveRegs / ORG.RestoreRegs in the FPGA Oberon compiler

Peter Matthias PeterMatthias at web.de
Wed Dec 19 18:48:08 CET 2018

Am 19.12.18 um 18:08 schrieb Paul Reed:
> Hi Peter,
>> There comes the question: why is the register variable loaded before the
>> parameters are evaluated? To save a register? This should not matter on
>> RISC5. Looks to me it would be much nicer code without.
> Not sure what you mean.  The value of the procedure (proper procedure or
> function) variable will be in a register before the parameter evaluation
> if, for example, it comes from looking up in an array or dereferencing a
> pointer.

Currently, the procedure address is put in R0, R0 is stored on stack, 
the parameters are passed beginning from R0 and procedure address is 
loaded from stack to next free register. I suppose it would be possible 
as well to first pass the parameters beginning with R0 and then directly 
put procedure address in next free register.


More information about the Oberon mailing list