AFP
- Default
- AFP(NOVOLATILE)
- Recommended
- AFP(NOVOLATILE)
- Reasoning
-
When AFP(VOLATILE) is specified, values cannot be saved in registers FP8-FP15 during calls. They must instead be saved in memory and subsequently restored. The performance impact is most significant for small programs called many times.
The use of AFP(NOVOLATILE) over AFP(VOLATILE) reduces the overhead of a program call by 4% at OPT(2). Note this was measured in an otherwise empty COBOL program to emphasize the performance cost of this option and would be less of an overall degradation in a more substantial called program.
- Considerations
- Specifying AFP(NOVOLATILE) requires a CICS® Transaction Server V4.1 or later.
Note: AFP has no effect when the LP(64)
compiler option is specified. This means user application has no control
on COBOL compiler's usage of floating point registers. The compiler
may behave as if AFP(NOVOLATILE) is specified. Note that with LP(64),
register usage (what is preserved and what is volatile) for all register
classes is in accordance with the XPLINK specification. No guarantees
beyond this specification are supported.