[Info-vax] SOBGEQ vs SOBGTR
Arne Vajhøj
arne at vajhoej.dk
Sat Feb 24 07:58:41 EST 2024
On 2/23/2024 10:29 PM, Arne Vajhøj wrote:
> On 2/23/2024 10:14 PM, Lawrence D'Oliveiro wrote:
>> ... set up loop count in Rn ...
>> BR 9000$
>> 1000$:
>> ... body of loop ...
>> 9000$: SOBGEQ Rn, 1000$
>>
>> Why branch and use SOBGEQ instead of SOBGTR? So that, if the loop
>> count is initially zero, the branch falls right through without
>> executing the body of the loop.
>
> With the details provided then it will be pure
> speculation.
>
> n = whatever
> loop:
> if n <= 0 goto endloop
> ...
> n = n - 1
> goto loop
> endloop:
>
> has more instructions than:
>
> n = whatever
> loop:
> ...
> n = n - 1
> if n > 0 goto loop
>
> but the second has the problem of not handling the n = 0
> case properly.
>
> n = whatever
> goto checkfirst
> loop:
> ...
> n = n - 1
> checkfirst:
> if n > 0 goto loop
>
> looks like a hack to fix that problem.
The entire thing reminds me of Fortran 66 vs 77
on DO loops.
Arne
More information about the Info-vax
mailing list