[Oberon] RISC emulator
joerg.straube at iaeth.ch
Fri Mar 28 15:14:43 CET 2014
The main change I did was to use the same output formatting statements (the
thing with " ", "-" and digits) for the corner case and the normal case.
I left the test for the corner case as is.
There are different ways to test for the corner case
Whether you write
IF x = 80000000H THEN ...
IF ROR(x, 31) = 1 THEN ...
is up to your gusto and the capabilities of the compiler :-)
From: Paul Onyschuk [mailto:blink at bojary.koba.pl]
Sent: Freitag, 28. März 2014 13:15
To: oberon at lists.inf.ethz.ch
Cc: ETH Oberon and related systems
Subject: Re: [Oberon] RISC emulator
On Fri, 28 Mar 2014 22:01:30 +1030
Chris Burrows <chris at cfbsoftware.com> wrote:
> IF ROR(x, 31) = 1 ...
> The test should only return true if bit 31 of x is 1 *and* all the
> other bits of xare zero.
> When you are doing low-level bit-manipulation operations like this,
> low-level bit-manipulation operators like ROR are quite suitable.
Is there particular reason why absolute value isn't checked instead:
x0 := -x;
IF x0 < 0 THEN ...
This is also integer-size agnostic. I'm asking since this looks like a
proper way of checking for the same corner case when using ABS():
IF (ABS(x) < 0) THEN ...
Hope I'm not too intrusive with this question.
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 6097 bytes
Desc: not available
Url : https://lists.inf.ethz.ch/pipermail/oberon/attachments/20140328/7f99595a/attachment.bin
More information about the Oberon