Martin,

There is no overlap on the base registers, so no warning message is issued.

The code generated is correct.

John P. Baker

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:assembler-l...@listserv.uga.edu]
On Behalf Of Martin Trübner
Sent: Thursday, December 30, 2010 4:01 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: A bug or a feature?

I have a case where HLASM creates the wrong negative offset in a LAY
instruction.

That was at least my first thought ....when I cut the program down to
isolate the error, I found that it is caused by the rule- "closest base will
be used" - but in my particular case I did not get an error message at all.
A "** ASMA303W Multiple address resolutions may result.." would have been
nice.

Even better would be to make it correct. At the point the instruction is
coded, there is only one base identified via a USING ............

Now is this a bug or just a "heads up"?

Here is the reduced code:

     TITLE ' generate wrong LAY instruction'
PISNMP09   CSECT
CODE LOCTR
DEFS LOCTR
BASE     DS    0D
CODE LOCTR
         BAKR  14,0
         BASR  3,0
         AHI   3,BASE-*
         USING BASE,3
         BASR  15,0
TEST     DC    C'HERE'
         ORG   *+x'550'
         BASR  15,0
         USING  (*,NOMORE1),15
         STORAGE RELEASE,ADDR=(4),LENGTH=(0),KEY=9,SP=241
NOMORE1  DS     0H
         DS     H   put just a little between me and the end
*
*   the following instruction uses the wrong base
*
         LAY    1,TEST
         LAY    1,TEST-BASE(,3)
DEFS     LOCTR
*
*
         LTORG
        END
And before someone points out that STORAGE does not need a base. It does in
VSE (because it is too hard to copy the code from MVS to VSE).

--
Martin

Pi_cap_CPU - all you ever need around MWLC/SCRT/CMT in z/VSE more at
http://www.picapcpu.de

Reply via email to