There are several areas where LE does not agree well with the calling
conventions, as I learned them in the mid 80s.
- forward save area chaining (never done by LE, turning SYSUDUMP save area
traces useless ... we fix this in our site specific interface modules, which are
used between every two external module calls, be it dynamic linkage or static
linkage)
- the convention also implemented by SYSUDUMP, that entry points be documented
by a text which starts at EPA + 5, with a one byte length field at EPA + 4.
Today we always have x'01' and C'CEE' there; the compilers do it this way
(although not all compilers are CEE compilers), and so the SYSUDUMP output of
the save area trace, if any, looks like this:
MODULE xxxx WAS CALLED AT EP C
which does not help in any way.
Our site specific dump routines, which replace SYSUDUMP etc., show at the same
place the function (or CSECT) name of the programming language, be it PL/1, C,
(C++) or ASSEMBLER ... coming from PPA2 ... and in certain situations the
compile date. It would be very easy to get the same information in SYSUDUMP,
too, if the function prolog would be compatible to SYSUDUMP standards, which,
IMO, are part of the linkage conventions.
BTW: these problems were not introduced with LE; they were already there which
pre-LE versions of PL/1, for example (OS-PL/1 version 2.x). I first learned
about these problems in 1991, when I started using PL/1 at my current customer's
site. From 1984 to 1991 I only did ASSEMBLER on MVS (then), and I was kind of
surprised in 1991, that the other languages did not conform to what I understood
as being system standards.
Kind regards
Bernd
Am 23.10.2014 18:16, schrieb T.H.:
> On 22 October 2014 18:34, S.M. wrote:
>>> Here's the epilog code for a non-main function generated by an oldish
>>> version of IBM C:
>> Doesn't the use of R1 violate the calling convention?
> It's an internal call/return, so they can do what they like.
>
> T.H.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to listserv@listserv.ua.edu with the message: INFO IBM-MAIN
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to listserv@listserv.ua.edu with the message: INFO IBM-MAIN
|