Hmmm... "I had a tough time in code review. Reviewers called me naive for using a negative value in a base register. No, the were ignorant; the code worked and was correct."
Perhaps technically 'correct', in that it worked, but why run the risk of having a customer stumble over the eventual bad fruit borne of the seemingly enlightened developer decades earlier, but since maintained by lesser souls. 'Danger Will Robinson! Danger!!!' My 2 cents worth. Mike -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Steve Smith Sent: Tuesday, June 2, 2020 5:01 PM To: [email protected] Subject: Re: z/OS HLASM: EQU for statement labels Caution! This message was sent from outside your organization. Not bad. It's very useful for assembler programmers to understand the math behind 2s-complement (and how it nicely "complements" wrap-around addressing) thoroughly enough to get that; besides understanding you avoided changing the CC. But for the record, that's a negative value in an index register. sas On Tue, Jun 2, 2020 at 4:24 PM Paul Gilmartin < [email protected]> wrote: > On 2020-06-02, at 14:01:28, MELVYN MALTZ wrote: > > > > Labels... > > Even back in the 60's I was taught never to put a label on an > > instruction I only break that rule now for the subject of an EX (and > > its variants) > > > It's safer than > label EQU * > > > Returning CC from a subroutine... > > Have to point out that IBM do this in the VSAM TESTCB macro > > > I had one co-worker who insisted on doing that. He augmented our > MVS/XA common return macro to: > > IPM > ... > SH R13,=Y(workarea_length) > ... > SPM , restore CC > > then *I* was tasked with porting to VM/370. No IPM. I did: > LH R1,=Y(-workarea_length) > LA R13,0(R1,R13) > > I had a tough time in code review. Reviewers called me naive for > using a negative value in a base register. No, the were ignorant; the > code worked and was correct. > > -- gil >
