Table 1 describes the specific XPLINK information in sections of the Language Environment dump.
Section Number and Heading | Contents |
---|---|
[1] Traceback | When an XPLINK-compiled routine calls a NOXPLINK-compiled
routine, a glue routine gets control to convert the linkage conventions
of the XPLINK caller to those of the NOXPLINK callee. In the sample
dump, this routine is CEEVRONU and it appears between main() and
tran1() and again between tran2() and tran3(). When a NOXPLINK-compiled routine calls an XPLINK-compiled routine, a glue routine gets control to convert the linkage conventions of the NOXPLINK caller to those of the XPLINK callee. In the sample dump, this routine is CEEVROND and it appears between EDCZHINV and main() and again between tran1() and tran2(). |
[2] Parameters, Registers, and Variables for Active Routines | In this section, each DSA is identified as one
of the following:
|
[3] Control Blocks for Active Routines | In this section, DSAs are formatted. Those previously
identified as UPSTACK DSAs will have one format and those identified
as DOWNSTACK DSAs will have a different format. Those identified as
TRANSITION DSAs will have two parts; the first will be either the
downstack or upstack format, the second is unique to transition DSAs
and contains information about the transition. It is important to understand that the registers saved in an upstack DSA are those saved by a routine that the DSA-owning routine called. Typically register 15 is the entry point of the routine that was called, and register 14 is the return address into the DSA-owning routine. In contrast, the registers saved in an downstack DSA are those saved by the DSA-owning routine on entry. Register 7 is the return address back to the caller of the DSA-owning routine. Register 6 may be the entry point of the DSA-owning routine. (This is not true when the Branch Relative and Save instruction is used to implement the call.) |