Use the EDCPRLG macro to generate non-XPLINK assembler
prolog code at the start of assembler routines.
>>-+------+--EDCPRLG--+------------------+---------------------><
'-name-' +-USRDSAL=ulen-----+
+-BASEREG=register-+
'-DSALEN=dlen------'
- name
- Is inserted in the prolog. It is used in the processing of certain
exception conditions and is useful in debugging and in reading memory
dumps. If name is absent, the name of the
current CSECT is used.
- USRDSAL=ulen
- Is used only when automatic storage (in bytes) is needed. To address
this storage, see the EDCDSAD macro description.
The ulen value is the requested length of the user space in
the DSA.
- BASEREG=register
- Designates the required base register. The macro generates code
needed for setting the value of the register and for establishing
addressability. The default is Register 3. If register equals NONE,
no code is generated for establishing addressability.
- DSALEN=dlen
- Is the total requested length of the DSA. The default is 120.
If fewer than 120 bytes are requested, 120 bytes
are allocated. If both dlen and ulen are
specified, then the greater of dlen or ulen+120 is
allocated. If DSALEN=NONE is specified, no code is
generated for DSA storage allocation, and R13 will still point to
the caller's DSA. Therefore, you should not use the EDCEPIL macro
to terminate the assembler routine. Instead, you have to restore the
registers yourself from the current DSA. To do this, you can use an
assembler instruction such as
LM 14,12,12(R13)
BR 14
You should not use EDCDSAD to access
automatic memory if you have specified DSALEN=NONE,
since DSECT is addressable using R13.