Thanks, Alan.
Here is the final wrinkle:
People messing with SSAOPSWA on z/CMS might also need to zero bit 31
(64-bit addressing) of OLDPSW thus:
NI OLDPSW+3,X'FE' Turn off 64-bit mode
Lest they experience an addressing exception by the 31-bit mode bit
remaining one in the instruction address and being interpreted as an
address bit rather than a mode bit.
This caters for the condition where the SVC is used to return to 31-bit
code. Bit 31 of the old PSW should (of course?) be left strictly alone
if you wish to get back to the place where the SVC was issued in
whichever addressing mode it was issued (better do the SVC below the
bar, methinks).
(Please pass this info on to Mikey in case he cares.)
On 05/08/2017 06:39 AM, Alan Altmark wrote:
On Wednesday, 05/03/2017 at 08:29 GMT, "John P. Hartmann"
<[email protected]> wrote:
HNDSVC sets up a handler for SVCs.
The documentation does not describe how to set the contents of a
register upon return, only that registers are restored. I assume this
is from the system save area (SSAVE) and that one would have to modify
the saved registers there. Correct?
Yes. That's how SVCs that return data in registers do it.
SPIE allows for a way to resume at some other point than the interrupt
(which often is desirable); suppose one would want to do the same for a
SVC; perhaps the address of an error routine has been passed in the
parameter list. Also modify the SSAVE (SSAOPSWA)?
Yes. In fact, that's what SPIE changes.
Alan Altmark
Senior Managing z/VM and Linux Consultant
Lab Services System z Delivery Practice
IBM Systems & Technology Group
ibm.com/systems/services/labservices
office: 607.429.3323
mobile; 607.321.7556
[email protected]
IBM Endicott