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
