Use this system macro to move:
- Data between entry control block (ECB) virtual memory (EVM) address space
and system virtual memory (SVM) address space.
- Between EVM addresses that belong to two different ECBs.
This macro is similar to the E-type MOVEC macro.
Format
- label
- A symbolic name can be assigned to the macro statement.
- PARM=Rx
- This register points to the address of a parameter list in the IMOVE DSECT
that contains the following fields to be filled in with the appropriate
values:
- MFROM
- This 4-byte field contains the address from which data is
moved.
- IMTO
- This 4-byte field contains the address to which data is
moved.
- IMSVAF
- This 4-byte field contains the system virtual address (SVA) of the ECB
from which the data is moved.
- IMSVAT
- This 4-byte field contains the SVA address of the ECB to which the data is
moved.
- IMLENTH
- This 4-byte field contains the length of the storage to be moved.
- IMTYPE
- This 1-byte field contains the type of move to occur, either an SVA to SVA
move or an SVA to ECB virtual address (EVA) move.
- 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.
This parameter is ignored if the $MOVEC macro is issued from ECB
code.
- 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.
This parameter is ignored if the $MOVEC macro is issued from ECB
code.
Entry Requirements
You must call the $MOVEC macro in 31-bit addressing mode.
Return Conditions
Control is returned to the next sequential instruction (NSI).
Programming Considerations
- This macro can be run on any I-stream.
- The following combinations are valid:
- From EVM to SVM
- Move data from an EVM address space to an SVM address space.
- From SVM to EVM
- Move data from an SVM address space to an EVM address space.
- From EVM1 to EVM2
- Move data within an EVM address space or between different EVM address
spaces.
- From SVM1 to SVM2
- Move data from an SVM address space to another SVM address space.
- Note:
- System error dumps can occur when servicing a $MOVEC request.
See Messages (System Error and Offline) for more
information.
Examples
None.