Re: Base-less macros

2021-11-29 Thread Steve Smith
Using R14 as a temporary code base after a call isn't going to work in those cases. I'd never heard about using BIC to return (nor can I see much reason for it). And there are other bizarre ways to return without restoring R14, which is not actually required by documented conventions. For BASSM,

Re: Base-less macros

2021-11-29 Thread Seymour J Metz
"When control is returned to your control section from the called control section, registers 2-14 contain the same information they contained when control was passed, as long as system conventions are followed " I see nothing wrong with BIC for returning from an AMODE 64 caller with an F4SA.

Re: Base-less macros

2021-11-29 Thread Paul Gilmartin
On Nov 29, 2021, at 12:41:51, Ngan, Robert (DXC Luxoft) wrote: > > DON'T DO THAT! > I had to find/redo all our code that did this when our subroutine return > logic was changed to use a BIC instruction. > Which of you violated standard linkage conventions? My understanding is that R14 is

Re: Base-less macros

2021-11-29 Thread Ngan, Robert (DXC Luxoft)
The assembler services guide doesn't specify what is in (bottom half of) R14 upon return. Also, on return to an AMODE(64) routine via BASSM/BSM, R14 would have the low-order bit set. Robert -Original Message- From: IBM Mainframe Assembler List On Behalf Of Paul Gilmartin Sent:

Re: Base-less macros

2021-11-29 Thread Seymour J Metz
"When control is returned to your control section from the called control section, registers 2-14 contain the same information they contained when control was passed, as long as system conventions are followed." -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3

Re: Base-less macros

2021-11-29 Thread Ngan, Robert (DXC Luxoft)
DON'T DO THAT! I had to find/redo all our code that did this when our subroutine return logic was changed to use a BIC instruction. Robert -Original Message- From: IBM Mainframe Assembler List On Behalf Of Steve Smith Sent: Thursday, November 25, 2021 13:49 To:

Re: FPR usage question

2021-11-29 Thread Robin Vowels
On 2021-11-30 00:06, Peter Relson wrote: I wrote For z/OS, this question relates to each work unit and the question is "does the work unit use FPRs 8-15 or VRs?". If the answer is no, then that work unit does not save/restore those regs upon undispatch/redispatch and thus saves some cycles.

Re: FPR usage question

2021-11-29 Thread Seymour J Metz
I'm not aware of any processor that FP registers beyond what IBM documented. Certainly non of the functional specs manuals mentioned such a thing. >From my perspective it was a long way coming, but I'd bet that there are >people here and on IBM-MAIN who never saw a processor with only 4.

Re: FPR usage question

2021-11-29 Thread Peter Relson
I wrote For z/OS, this question relates to each work unit and the question is "does the work unit use FPRs 8-15 or VRs?". If the answer is no, then that work unit does not save/restore those regs upon undispatch/redispatch and thus saves some cycles. "FPRs 8-15" is incomplete/inaccurate

Re: FPR usage question

2021-11-29 Thread Abe Kornelis
All, to my knowledge, the FPRs got even  numbers only because in the initial implementation they existed as register pairs(!) - hence the weird numbering scheme we still have today :-) Kind regards, Abe Kornelis Op 29/11/2021 om 15:22 schreef Seymour J Metz: > I'm not aware of any

Re: FPR usage question

2021-11-29 Thread Seymour J Metz
The is a difference between what registers exist in the hardware and what is addressable by a S/360 (FSVO) program. Yes, there were processors where the microcode could address individual fileds within an FP register, but the instructions implemented in microcode could not do so until very late

Re: Base-less macros

2021-11-29 Thread Charles Mills
I did not think about how this had to happen before you had saved any registers. (Same issue for @Gary's suggestion, which is basically equivalent to mine.) If there is no register that your linkage conventions imply do not need to be saved (R0?) then you could temporarily save a register at

Re: Base-less macros

2021-11-29 Thread Mark Hammack
So an interesting dilemma: I have a macro that switches between a regular (24/31 bit style) save area and an extended (64 bit "F4SA") save area. Before saving the registers, I am checking whether the current save area is old (24/31 bit) or new (64 bit) save area. The original code used CLC

Re: Base-less macros

2021-11-29 Thread Steve Smith
CLRL 04(r13),=C'F4SA' ...you have USING issues, but as long as LTORG is within +/- 2G, no problem. I'd go with LLIHF 0,C'F4SA' CLHF 0,4(R13) or LFH 0,4(R13) CLIH 0,C'F4SA' So many ways to skin the cat. As usual, not tested, subject to typos, memory checks, etc. sas On Mon, Nov 29, 2021 at

Re: Base-less macros

2021-11-29 Thread Steve Smith
Well, I messed up CLRL... it is not an SS-like instruction. If you really can't afford to trash half of any general register, AR0 is a convenient hidey-hole. It's the appendix of z/Arch, as it appears to have no functional purpose. If AR0 can't be trashed, then surely you can borrow a FPR. If

Re: Base-less macros

2021-11-29 Thread Ngan, Robert (DXC Luxoft)
As per the FPR usage thread, you could also save GR(s) to FP registers 0 thru 7. Robert -Original Message- From: IBM Mainframe Assembler List On Behalf Of Charles Mills Sent: Monday, November 29, 2021 18:03 To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Base-less macros I did not

Re: Base-less macros

2021-11-29 Thread Charles Mills
LLILF and C? Charles -Original Message- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Mark Hammack Sent: Monday, November 29, 2021 2:52 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Base-less macros So an interesting dilemma: I have a

Re: Base-less macros

2021-11-29 Thread Gary Weinhold
Can you temporarily save one register,  load it register with the 4(R13) and use a CFI? On 2021-11-29 5:51 p.m., Mark Hammack wrote: So an interesting dilemma: I have a macro that switches between a regular (24/31 bit style) save area and an extended (64 bit "F4SA") save area. Before saving