| James J. Weinkam 2006-01-10, 3:59 am |
| glen herrmannsfeldt wrote:
> robin wrote:
>
>
>
>
>
>
>
> Well, first there are no HE or HD instructions.
>
> I am pretty sure that HER and HDR will, and always have, done a
> one digit shift when needed. It might be that they won't normalize
> a previously unnormalized number, but in that rare case using AER
> or some other that will normalize should be fine.
>
> (snip)
>
> -- glen
>
Unfortunately, I no longer have any S/360 manuals and there don't seem to be any
free downloadable versions. However, according to GA22-7000-8, IBM System/370
Principles of Operation (1981), HER and HDR do the following:
The second operand is divided by 2 and the normalized quotient is placed in the
first operand location.
The manual goes to describe the exact operation of the instruction in detail,
covering every conceivable eventuality. Under "Programming Notes" it states:
3. The result of HALVE is zero only when the second operand fraction is zero, or
when exonent underflow occurs with the exponent underflow mask set to zero. A
fraction with zeros in every bit position, except for a one in the rightmost bit
position , does not become a zero after the right shift. This is brecause the
one bit is preserved in the guard digit and, when the result is not made a true
zero because of underflow, becomes the leftmost bitafter normalization of the
result.
So much for not fully normalizing a previously unnormalized number.
As I recall the S/360, all floating pointing operations procuced normalized
results except for the various load instructions and the unnormalized instructions.
|