According to the 2004 POO (SA22-7832-03), which I believe predates z9, you can:
     Simulate an LA to clear the high half contents of a register with ICMH 
Rx,15,=XL4(00) or NG Rx,=XL8(FFFFFFFF)
     Simulate an LA to increment the count in the high half with AG 
Rx,=XL8(100000000)
     Simulate a BCTR to decrement the count in the high half with AG 
Rx,=X(FFFFFFFF00000000)

> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-
> l...@listserv.uga.edu] On Behalf Of Wendell Lovewell
> Sent: Friday, October 27, 2017 4:32 PM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Using the High Halfs of registers
> 
> Hello,
> 
> I've inherited a large (31-bit) application with little documentation and 
> lots and lots of
> BASRs to subprograms.  I can't tell how deep the calls can go, but I've seen 
> over 20 levels
> deep.   I'm looking for a way to keep track of the stack level of a routine 
> that doesn't add
> much code.  There are standard $SAVE and $RETN macros I think I can use to 
> keep track
> of the stack level.
> 
> There are also a large number of $TRACE calls where I've added an IIHF 
> statement in the
> macro to load a global counter (for the number of trace statements in that 
> assembly--there
> are over 4000 of those in some cases).  For example,  IIHF R2,&ZTSEQ, where 
> &ZTSEQ is
> a GLBLA incremented once each time the $TRACE macro is encountered.
> 
> Sorry for all the background.  What I'm looking for are "high-half" versions 
> of  LA and
> BCTR commands, so that the incrementing and decrementing could be done with 2
> statements per CSECT--without affecting the low halves of the register.  For 
> example in 31-
> bit land if R2 was always available, I could say "LA  R2,1(R2)" at the start 
> of the modules,
> and "BCTR R2,0"  at the end.  In this case reg 2 would always be the stack 
> level.
> 
> I'd also need to keep the application compatible with z9 (OPCODE(ZS3)) or 
> later machines.
> 
> Can anyone tell me if such statements exist in OPCODE(ZS3)?  I can't find 
> them if they are
> there.

Reply via email to