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. =========
