Retry from an ESTAE-type recovery routine
- The RETREGS parameter controls whether registers are restored
from the SDWA. If you specify RETREGS=NO, registers are not restored
from the SDWA.
If you specify RETREGS=YES, GPRs are restored from SDWASRSV, and ARs are restored from SDWAARSV. If you specify RETREGS=YES,RUB, you can manipulate the contents of SDWASRSV to whatever you wish the GPRs to be before they are restored. Or, you can directly manipulate the contents of both SDWASRSV and SDWAARSV. When you specify RETREGS=YES and are running in z/Architecture® mode, the upper halves of the 64–bit registers at retry will contain the upper halves of the 64–bit registers from the time of error.
If you are running in z/Architecture mode and specify RETREGS=64, the 64–bit GPRs at retry are restored from SDWAG64 and the ARs are restored from SDWAARSV.
See the description of the SETRP macro in z/OS MVS Programming: Authorized Assembler Services Reference SET-WTO for complete details.
- The FRESDWA parameter controls whether the system frees the SDWA before giving control to the retry routine. FRESDWA=YES instructs the system to free the SDWA; FRESDWA=NO instructs the system not to free the SDWA. This has an affect on the register contents on entry to the retry routine.
The following tables describe the register contents under various circumstances on entry to a retry routine from an ESTAE-type recovery routine:
Register | Contents |
---|---|
GPR 0 | 12 (X'0C'). |
GPR 1 | For ARRs, a copy of the current
contents of the first 4 bytes of the 8-byte modifiable area in the
linkage stack entry that was current when the ARR''s stacking PC was
entered. For IEAARR issued in AMODE 31, the 31-bit address of the parameter area specified on the ARRPARAMPTR parameter of IEAARR. For IEAARR issued in AMODE 64, the 64-bit address of the parameter area specified on the ARRPARAMPTR64 parameter of IEAARR. For other ESTAE-type recovery routines where the PARAM parameter was specified, the address of the user-supplied parameter area. Note that when ESTAEX was issued in AMODE 64, GPR 1 contains a 64-bit value. For other ESTAE-type routines where the PARAM parameter was not specified, zero. |
GPR 2 | Address of the purged I/O restore list if I/O was quiesced and is restorable; otherwise, zero. |
GPRs 3 - 14 | Do not contain any information for use by the routine. |
GPR 15 | Entry point address of the retry routine, except for when ESTAEX was issued in AMODE 64, in which case the low order bit is set on. |
Register | Contents |
---|---|
AR 0 | Zero. |
AR 1 | One of the following:
|
ARs 2 - 13 | Do not contain any information for use by the routine. |
ARs 14 - 15 | Zero. |
Register | Contents |
---|---|
GPR 0 | Zero. |
GPR 1 | Address of the SDWA. |
GPRs 2 - 14 | Do not contain any information for use by the routine. |
GPR 15 | Entry point address of the retry routine, except for when ESTAEX was issued in AMODE 64, in which case the low order bit is set on. |
Register | Contents |
---|---|
ARs 0 - 1 | Zero. |
ARs 2 - 13 | Do not contain any information for use by the routine. |
ARs 14 - 15 | Zero. |
Register | Contents |
---|---|
GPR 0 | 20 (X'14'). |
GPR 1 | For ARRs, a copy of the current
contents of the first 4 bytes of the 8-byte modifiable area in the
linkage stack entry that was current when the ARR''s stacking PC was
entered. For IEAARR issued in AMODE 31, the 31-bit address of the parameter area specified on the ARRPARAMPTR parameter of IEAARR. For IEAARR issued in AMODE 64, the 64-bit address of the parameter area specified on the ARRPARAMPTR64 parameter of IEAARR. For other ESTAE-type recovery routines where the PARAM parameter was specified, the address of the user-supplied parameter area. Note that when ESTAEX was issued in AMODE 64, GPR 1 contains a 64-bit value. For other ESTAE-type recovery routines where the PARAM parameter was not specified, zero. |
GPR 2 | Address of the purged I/O restore list, if I/O was quiesced and is restorable; otherwise, zero. |
GPRs 3 - 14 | Do not contain any information for use by the routine. |
GPR 15 | Entry point address of the retry routine, except for when ESTAEX was issued in AMODE 64, in which case the low order bit is set on. |
Register | Contents |
---|---|
AR 0 | Zero. |
AR 1 | One of the following:
|
ARs 2 - 13 | Do not contain any information for use by the routine. |
ARs 14 - 15 | Zero. |
Register | Contents |
---|---|
GPRs 0 - 15 | Restored from SDWASRSV, regardless
of whether the recovery routine specified FRESDWA=NO or FRESDWA=YES. Note that register 15 does not contain the entry point address of the retry routine unless the recovery routine sets it up that way. |
Register | Contents |
---|---|
ARs 0 - 15 | Restored from SDWAARSV, regardless of whether the recovery routine specified FRESDWA=NO or FRESDWA=YES. |
Register | Contents |
---|---|
GPRs 0 - 15 | Restored from SDWAG64, regardless
of whether the recovery routine specified FRESDWA=NO or FRESDWA=YES. Note that register 15 does not contain the entry point address of the retry routine unless the recovery routine sets it up that way. |
Register | Contents |
---|---|
ARs 0 - 15 | Restored from SDWAARSV, regardless of whether the recovery routine specified FRESDWA=NO or FRESDWA=YES. |