You really need to come up to speed on modern opcodes. All of the performance 
improvements are in new opcodes; the old ones aren't getting any faster. There 
is some cool stuff, like ANDs and ORs of immediate values against registers, 
operations on the high word of registers (like getting 16 additional registers 
to play with!), and the ability to load 31 bits of a word into a 32- or 64-bit 
register. Lots and lots of new immediate instructions (including LLILF) because 
storage references are such performance killers. Load and store on condition, 
which lets you do the classic compare/jump around on condition/load -- without 
a jump, which is also a performance hit. (And I'm a C++ guy now)

It is not multiply relocatable. It must be relocated only by the load address 
of CSECT OTHER -- that's it. Multiply relocatable is crazy stuff like

ONE CSECT
X   DC    A(X-Y)
TWO CSECT
Y   EQU   *

Nothing more in SYSPRINT except the source code reference and a helpful display 
of what the assembler made of it: 0000 0000 0000.

Unfortunately the FM is pretty clear: it must be absolute. All of the bits and 
pieces are there to make this work: the instruction would work if assembled. 
The assembler knows how to do this sort of thing and will do it in an 
A-constant. It's solvable: I have not asked the assembler and binder to know 
the unknowable. But the assembler in its high level wisdom does not support 
relocatable immediate operands. Made sense when the biggest immediate operand 
was 8 bits in CLI; it makes no sense in the 32-bit immediate operand context of 
LLILF. Sigh.

> or we can wait for Lizette to tell you to take this to ASSEMBLER-LIST

:-)

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Paul Gilmartin
Sent: Tuesday, December 27, 2016 7:59 PM
To: [email protected]
Subject: Re: ASMA032E Relocatable value or unresolved symbol found when 
absolute value required

On Tue, 27 Dec 2016 19:45:58 -0800, Charles Mills wrote:
>
>> Since they're in different CSECTs, the assembler will need to 
>> generate ESD
>and RLD
>> entries since a Binder ORDER statement may muddle any relation 
>> between the
>addresses.
>
>Assembler and binder do it all the time. Every instance of EXTRN FOO/DC
>A(FOO)
>
>> But are long displacements relocatable?
>> But can it depend on the target's being within even long displacement
>reach?
>
>No long displacement in the picture.
> 
Ok.  I'm modern Opcode-ignorant.  Is it a multiply-relocatable immediate 
operand?  Are multiply-relocatable immediate operands supported?

FOO appears to be (multiply) relocatable and ASMA032E says it requires 
absolute.  Does SYSPRINT tell you more about this?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to