Ref: Your note of Wed, 5 Nov 2014 23:42:24 -0500
The purpose of an RFE is primarily for IBM to determine
requirements and priorities. You do not need to specify the
solution in detail, only the overall requirement.
HLASM is already aware of three specific requirements in the
USING/DROP area, all of which I discussed with John Ehrman some
years ago. We came up with suggested solutions too, so if these
areas are considered sufficiently high priority in future, there
is already a provisional solution defined (although there is of
course no guarantee that HLASM will actually do it that way, if
at all).
1. Dependent USING support for long displacements
For 20-bit displacement support, a dependent USING should be
able to be defined anywhere within the 20-bit addressable
range of an existing base register. (This was also discussed
on the mailing list some time ago).
The suggested solution is that if the OPTABLE specifies an
instruction set which includes 20-bit displacement support,
the base address of a dependent USING will be considered
valid if it is addressable using a 20-bit displacement,
otherwise it must be addressable using a 12-bit displacement
as at present.
Obviously, if a dependent USING was accepted as being
addressable only using 20-bit support but was then used to
resolve a 12-bit addressable reference, this would still give
an error as usual, but only on the reference, not on the
USING.
2. USING support for long displacement limits
USING needs additional support for lower and upper limits for
20-bit displacements.
The suggested solution is to extend the first parameter of
the USING statement to the following form with two new
optional subparameters:
USING (base,limit,lower,upper),...
The first limit field only applies to 12-bit displacements,
for total compatibility with existing code. The base also
effectively acts as a lower limit for 12-bit displacements.
The new lower and upper limits apply to both 12-bit and
20-bit displacements. For a 12-bit displacement, a location
is only addressable if it lies within both sets of limits.
Note that the lower limit may be greater than the base, to
limit the addressability to an area which does not include
the base address.
If a location is outside the range limits, this does not
directly cause an error, but merely means that it is not
addressable via that USING statement, as at present.
The above change for USING limits also allows the same base
registers to be used to address multiple discontiguous parts
of the same section, for example as follows:
USING (codebase,,code,code_end),R3,R4,R5
USING (codebase,,static,static_end),codebase
USING (codebase,,literals,literals_end),codebase
There is a complication that the USING map part of the
listing would need enhancement to reflect the new
information, and there now seems to be too much information
to fit on a single line for each USING, so the layout of that
section might need to change somewhat.
3. DROP by address
It would be more convenient to DROP a USING statement by
reference to a location addressed via that USING statement
rather than having to specify a base register or qualifier.
For example, one could DROP the name of a DSECT rather than
its base registers.
The suggested solution is that if an operand to DROP is a
relocatable expression rather than a register, it drops the
USING statement that would be used to resolve the relevant
address.
This would also finally provide a method of dropping a
dependent USING, which is another subject that was previously
mentioned on the mailing list.
John Ehrman has previously recorded customer requirements for all
three of the above, but I think that only the first of these has
also been recorded on the new RFE tool, so if you want to request
either of the other enhancements mentioned above someone will
need to create a new RFE.
Jonathan Scott
IBM Hursley, UK