Fix for data abort if an array calculation errors with 5-byte FP values
The FPOINT=0 implementations of
result() = array() [+-*/] constant
result() = arraya() [+-*/] arrayb()
and FPOINT=0,1,2 implementations of
result() = arraya() . arrayb()
were all using R8 at the top level loop to iterate the array, not noticing that R8 is ARGP, so if the operation fails (for example due to overflow) the attempt to translate the error message via MSG fails because ARGP is left pointing at the next array element. Deal with this by spilling a register onto the stack so ARGP is left alone.
The FPOINT=1 and FPOINT=2 implementations of operations [+-*/] both don't touch R8 so already correctly report any errors encountered during the calculation.
Example faulting program:
DIM array(2), result(2)
a() = 1.7E18,1.7E28,1.7E38
result() = a() + 1E38 : REM Overflow on the last element
PRINT result(0)'result(1)'result(2)