In article <[email protected]> you wrote:
(snip)
> I have isolated the ABEND to a call to a self-written assembler function
> called ISAUTH. I execute a printf() immediately before the call but not a
> printf() after. I am posting below the entire code of ISAUTH. CDSALEN has a
> value of x'60C'. I think other than that the code snippet is self-contained.
(snip)
> It used to work. What changed? I added some functions and the module grew to
> have addressability problems, so I added an IEABRCX DEFINE. I have eyeballed
> the code generated by EDCPRLG and it appears correct -- now with a BRC 15
> instead of a B. It would be inconvenient to get the IEABRCX back out of
> there as a test.
Can you post the expansions of EDCPRLG and EDCEPIL?
I presume they do save and restoring of registers, and appropriate
save area linkage, but it would be nice to see the expansion.
> The function is declared in C++ as extern "OS" {bool ISAUTH();}. The other
> functions are declared similarly.
> AMODE 31/XPLINK(NO)
> Does anyone have any clues?
> ISAUTH EDCPRLG DSALEN=CDSALEN,BASEREG=NONE
> LARL R12,CZAMISC
> USING CZAMISC,R12
> *
> * *** USING CDSASTOR,R13 Use R13 as base for reentrant store
> *
> * Issue the TESTAUTH
> TESTAUTH FCTN=1
> *
> * TESTAUTH returns 0 = yes, 4 = no
> * We return 1 = yes, 0 = no
> SRL R15,2 Convert 4 into 1
> LCR R15,R15 Convert 1 into -1
> AHI R15,1 Convert 1 into 0 and 0 into 1
> *
> * *** J Ret_R15 Return whatever is in R15
> EDCEPIL ,
-- glen
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN