Gil wrote
<snip>
Do you save and restore them?
</snip>

The information pertinent to the question is here:
https://www.ibm.com/docs/en/zos/2.5.0?topic=registers-linkage-convention-floating-point
There is no need to save/restore FPRs 0-7 (as opposed to 8-15).

Further info is here:
https://www.ibm.com/docs/en/zos/2.5.0?topic=conventions-saving-calling-programs-registers
such as:
Saving the calling program's registers
Unless otherwise defined by the individual interface, the calling program 
expects upon return:
...
    FPRs 8 - 15 are unchanged; The Floating Point Control (FPC) Register 
is unchanged except for two fields: the IEEE exception flags and the data 
exception code (DXC).
    Vector registers (VRs) 8 - 15, bytes 0 - 7, and the entirety of VRs 16 
- 23 are unchanged.

Anything that is expected to be unchanged across a call according to the 
linkage conventions must be preserved by a user (whether by not using or 
by save/restore).

Gil wrote
<snip>
I remember being asked, "Do you use FPRs?  If not, we can bypass 
saving/restoring
them for performance when we gen your dedicated VSE system."
</snip>

For z/OS, this question relates to each work unit and the question is 
"does the work unit use FPRs 8-15 or VRs?".
If the answer is no, then that work unit does not save/restore those regs 
upon undispatch/redispatch and thus saves some cycles.

Peter Relson
z/OS Core Technology Design

Reply via email to