At 6:34 PM -0400 on 7/7/11, Shmuel Metz (Seymour J.) wrote about Re: Annoyance with the IEZJSAB macro:

You're the one asking IBM to provide training wheels. An experience
assembler program should know to reinstate addressability R14, R15 and
R1 following any code that alters the subject register.

You are confusing two issues. There is a USING for R1 when the macro was called. This USING was destroyed by the macro when it issued its own USING without bracketing it with a PUSH/POP. This has nothing to do with the macro making use of R1 since the user can restore the contents of R1 after the return from the macro by reloading the needed value. What should NOT be also needed is to reissue the USING since unless documented in the Macro definition, the macro should not be issuing its own USING without protecting the current USING via PUSH/POP. All the docs say that R14-R1 are subject to being modified by the Macros NOT that USINGs on these registers are also subject to being modified/destroyed by the macros.

Note that DSECT mapping Macros use PUSH/POP when they modify the PRINT settings so the state upon finishing the macro mapping is the same as when the macro was called. This same consideration should IMO apply to a macro hijacking the USING states.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to