Hello all,

(Cross-posted to IBM-MAIN)

The new instruction mnemonics for the z196
include a number floating point instructions
that already existed. An A has been appended
to their mnemonics. Why is that?
That is because a rounding mode could not
be specified; it was always taken from the
FP control register. Now these same instructions
allow specification of an explicit rounding mode.
Some examples:
ADTR --> ADTRA
AXTR --> AXTRA
CDFBR --> CDFBRA
CDGBR --> CDGBRA
etc.

At first I thought the A was for Additional rounding spec.
Unfortunately, there are also a number of really new
floating point operations. These all have the same
facility - a rounding mode can be explicitly specified,
or defaulted to the rounding mode in the FP control reg.
Only - these mnemonics do not end in an A.
For example:
CDFTR (but not CDFTRA)

So I've decided that the is probably meant to
indicate Alternative - as opposed to the pre-existing
version of the same instruction without the explicit
rounding mode.

I find this whole setup rather illogical. To code these
instructions correctly I need to memorize whether
the instuction I'm using is pre-z196 or not.
If it is, I can use the old mnemonic with default
rounding mode or the new Alternative one with
explicit rounding mode.
But if it is not, I can only use the mnemonic without
the additional final A, yet am obliged to code the
required rounding mode explicitly. Use zero for
using current value of FP control register.
So much for compatability.

I think IBM should have carried existing logic
forward: use mnemonics without A to generate
code with default masks having zero values,
and supply additional mnemonics with appended A
to enable explicit specification of rounding mode.

Any thoughts?

Kind regards,
Abe Kornelis.
=========

Reply via email to