Use this system macro to store the address of an entry in the macro decoder
table. The entries in this table are used by the macro decoder itself,
test tools, and various dump routines.
Each entry is one of the following:
- Primary supervisor call (SVC)
- Vectored SVC
- Indexed SVC
- A fast link macro.
Each macro must be defined with an appropriate call to the CRESVC macro in
the IBMSVC or USRSVC macros. The ISV0SV data macro maps the data at the
address provided.
Format
- REG=Rx
- This parameter specifies a general register that, upon return from this
macro call, contains the location of the SVC table entry for the requested
SVC. R14 is not valid.
- SVC
- This parameter specifies the location of the halfword SVC or fast link
number. Specify one of the following..
- addr1
- An address.
- reg1
- A register that contains the SVC number.
- Note:
- Either the SVC parameter or the SVCX parameter must be coded, but not
both.
- SVCX=reg3
- This parameter is a register containing the address of an SVC
expansion. If this parameter is coded, then CFISVC uses the SVC and
index number from the expansion, and returns the address of the corresponding
macro information table entry. If the expansion is not an SVC
expansion, the error path (see the NOTFND parameter) will be taken. If
this parameter is coded, SVC and SVC2L cannot be coded. SVCX and REG
cannot use the same register. R14 cannot be used in online code, and R2
is not valid for offline code.
- SVC2L
- This optional parameter contains the location of the halfword index number
for the indexed SVC. Specify one of the following:
- addr2
- An address.
- reg2
- A register that contains the index number.
- NOTFND=addr3
- This optional parameter specifies the location where control is
transferred if the SVC is not found. If NOTFND is omitted, control is
passed to the next sequential instruction (NSI).
Entry Requirements
None.
Return Conditions
- REG will contain zero if the SVC number is not found.
- R14 will not be saved when called from C-type or E-type programs.
If called from the system test post processor (STPP) or from the in-core dump
formatter (ICDF), R2 is not saved across the macro call.
Programming Considerations
- This macro may be processed on any I-stream online.
- CFISVC is used offline by STPP and online by real-time trace (RTT) among
other programs.
Examples
CFISVC SVC=EBW040,REG=R5,NOTFND=ERROR
This invocation returns the address in R5 of the macro decoder entry for
the SVC specified in ECB location EBW040. If the SVC specified is not
found, processing resumes at location ERROR.
CFISVC SVC=EBW040,SVC2L=EBW000,REG=R6
This invocation returns the address in R6 of the macro decoder entry for
the SVC specified in ECB location EBW040 and indexed by the halfword residing
in ECB location EBW000.
CFISVC SVC=(R3),SVC2L=(R5),REG=R6
This invocation returns the address in R6 for the macro decoder entry
specified by the SVC in R3 and indexed by the halfword in register R5.
CFISVC SVCX=R3,REG=R4,NOTFND=ERROR
This invocation returns the address in R4 for the macro decoder entry
indicated by the SVC expansion addressed by R3. If there is an error,
processing resumes at location ERROR.