Thanks a lot.
I have found new important (for me) insights from this discussion, that is:
similar to the AMODE 24 to AMODE 31 transition, we will face serious
problems
with existing programs, because such logic as below, which will work
correctly
with AMODE 24/31, is simply plain wrong with AMODE 64.
Even if we make sure that the left half of all general registers is
zero, when
entering some legacy code which worked correctly in the AMODE 24/31 case.
(This is new to me).
Is there already some sort of paper which contains all the codings to
look for,
in the same way as we had it when doing the transition from AMODE 24 to 31?
Or: is it assumed that hand-crafted ASSEMBLER code doesn't exist any more
with AMODE 64, and that the AMODE is set to 31, before such legacy
hand-crafted
code is executed?
Thanks, kind regards
Bernd
Am 24.10.2021 um 01:35 schrieb Paul Gilmartin:
On Sun, 24 Oct 2021 00:57:53 +0200, Bernd Oppolzer wrote:
So this means that
LA 2,ITEM+10
LH 3,=H'-5'
LA 2,0(2,3)
will put the address ITEM+5 in register 2, at least in AMODE 24/31?
I believe so. BTW, the HLASM Ref. says the address operand of a USING
must be non-negative, but I've tried negative values and they work with no
error.
With AMODE 64, this will be a problem, because the LH instruction only
fills the right half
of the 64 bit register 3, right?
Is there a way to do this right in all AMODEs?
Does LGH do that for you? (I can no longer make sense of the PoOps.)
(But not on hardware levels lacking LGH.)
For positive indexes? (only, if we assume the left half to be zero?)
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN