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

Peter Matthias PeterMatthias at web.de
Wed Dec 19 18:02:26 CET 2018

Am 18.12.18 um 22:41 schrieb Paul Reed:

>> But still, shouldn’t this register be somehow accounted for ?
>> ... by
>> ELSE Put2(Ldr, RH, SP, 0); Put1(Add, SP, SP, 4); DEC(r); DEC(frame, 4)
> Right.  If the procedure variable was not actually loaded before the
> parameters were evaluated (ie the procedure was not the result of an
> expression), no registers needed to be saved, so the save is explicitly
> avoided.

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.


More information about the Oberon mailing list