Use this system macro to convert an address valid in the system virtual
memory (SVM) into the corresponding address in the entry control block (ECB)
virtual memory (EVM).
Format
- ADDRESS=Rv
- This required parameter specifies a register containing a 31-bit system
virtual memory (SVM) address.
On return, the specified register contains the 31-bit ECB virtual memory
(EVM) address corresponding to the input 31-bit SVM address, if one
exists. If the SVM address is invalid or does not have a corresponding
EVM address, then the high order bit of the input SVM address is turned
on.
- ECB=Rw
- This parameter specifies the 31-bit address of the ECB. The 31-bit
ECB virtual memory address returned by the $GEVAC macro is valid only for a
single ECB. The specified register is not altered.
- Note:
- The ECB address, specified in the ECB parameter, must be in the same
addressing mode (SVM or EVM) as the address of the calling routine.
- ERROR=label
- This optional parameter specifies a label identifying the error routine to
receive control if an error condition is raised. An error will occur
when the EVM address specified in the ADDRESS parameter is invalid.
- SAVREG
- The specified volatile registers will be saved by the macro in
the stack area or in the registers specified by the WKREG parameter. Up
to 3 registers can be specified. Those registers are R0, R1, R2.
If this keyword is omitted, none of the 3 registers will be saved. You
should not save a volatile register if you expect it to contain an output
parameter. The register will be overwritten with its original contents,
since the reload is the last thing performed by the macro.
- WKREG
- The specified symbolic register names are free to be used by the macro to
save the volatile registers coded on the SAVREG parameter.
Up to 3 registers can be specified, but the standard linkage registers R13
through R2 cannot be used here. This parameter is used in conjunction
with the SAVREG parameter to generate efficient code and enhance the
performance of the macro. The number of registers specified by WKREG
should be less than or equal to the number of registers specified by
SAVREG. If this parameter is omitted or not used to its maximum
capacity, code optimization is sacrificed.
Entry Requirements
- This macro can be called from control program (CP) code only, be run in
either EVM or SVM, and be run on any I-stream.
- The ECB specified by the ECB parameter must be operating on the I-stream
where the $GEVAC macro was issued.
Return Conditions
- Following a successful address conversion, control is returned to the next
sequential instruction (NSI).
- If the address can not be converted then the ADDRESS parameter will
contain the input address with the high order bit set on to indicate a
conversion error. On errors, control is returned to the NSI, except
when the ERROR parameter designates an error routine.
- The condition code is not preserved.
Programming Considerations
The register specified for the ADDRESS parameter cannot be the same
register that is specified for the ECB parameter.
Examples
None.