I think RTM does a RP and RP is setup for a 16 byte PSW you think they could of 
found 8 bytes  in SDWARC4





> On Jun 26, 2019, at 3:42 PM, Jonathan Scott <jonathan_sc...@vnet.ibm.com> 
> wrote:
> 
> Ref:  Your note of Wed, 26 Jun 2019 09:43:30 -0400
> 
> If you have the linkage stack available and storage containing
> the information needed to resume (such as an SDWA or copy) then
> I think it is possible to create code to resume (at least in
> problem state) at a chosen address with all registers containing
> their original values, original PSW ASC mode, AMODE, condition
> code and program mask, using BAKR and PR.
> 
> I originally wrote some code like this in the 1990s to implement
> a sort of problem-state "must complete" where the original code
> could be resumed for a few instructions from the recovery
> routine, and when it turned off "must complete" it would return
> control to the recovery routine. However, it was never used in
> production, and I'm not sure whether it was even tested, so
> this method comes with no guarantees.
> 
> Basically, you set up the registers that are returned by PR, put
> the resume address in a register that isn't returned by PR,
> issue BAKR to save the resume address, restore the other
> registers and issue PR to resume. However, if you want to do it
> properly with condition code, ASC mode and so on, it's quite
> tricky.
> 
> - Start in primary mode with R1 pointing to the SDWA.
> 
> - Load access registers 2 through 14 (using one of the
>  other registers to address that SDWA section).
> 
> - Load general registers R2 through R14.
> 
> - Get the program mask (with CC) and ASC mode in R15.
> 
> - Get the PSW address and AMODE indicator bits in R0 (because R1
>  and R15 are still needed).
> 
> - Use SAC to set the ASC mode and SPM to set program mask.
> 
> - Copy the PSW instruction address and AMODE from R0 to R15.
> 
> - Issue BAKR R15,0 to stack the PSW and registers R2 to R14.
> 
> - Switch back to primary mode to access SDWA again.
> 
> - Get the program mask again in R15.
> 
> - Repeat the SPM in case PR doesn't restore the condition code
>  (it is undefined whether PR restores the condition code, but
>  it seems reasonable to assume it either takes the stacked
>  one or preserves the current one).
> 
> - Load access registers 15 through 1 from the SDWA, using some
>  other register to address the relevant part.
> 
> - Load general registers R15 through R1.
> 
> - Issue PR to resume execution with original state restored.
> 
> I hope I've remembered that correctly!  I probably have some
> code around somewhere to do that, but I can't remember where.
> 
> Jonathan Scott, HLASM
> IBM Hursley, UK

Reply via email to