For comparing instructions available by hardware generation, that doesn't work. OPTABLE(Zn) does not give you the instructions available for the Zn hardware. It gives you the assembler mnemonics available in HLASM when support for the Zn series hardware was added to HLASM.
So LFI is an extended mnemonic for IILF, and IILF was introduced with the z9. But LFI was added when HLASM was updated to support z16 instructions so LFI will not assemble with OPTABLE values of Z9 thru Z15. The LOC/STOC instructions (z11) have a similar issue, since the OVERFLOW condition code value were missed on the initial HLASM implementation, and were subsequently added with z13 support (i.e. LOCE works with OPTABLE(Z11) or higher, but LOCO required OPTABLE(Z13), and these are basically the same instruction!). So if you want to restrict what instructions are available when your target is a specific hardware series (which is what I was trying to do), using OPTABLE for this does not work. Robert Ngan DXC Luxoft -----Original Message----- From: IBM Mainframe Assembler List <[email protected]> On Behalf Of Farley, Peter Sent: Wednesday, March 20, 2024 16:54 To: [email protected] Subject: Re: OPCODE tables PoOPS in the "Summary of Changes" sections usually have at least some listing (in text format, nothing tablularized or easy to pick out) of instructions added in each manual section, but sometimes those are "generic" and don't include all the variations of added instructions. The only way I can think of to accurately (more or less) track the additions would be to extract the Appendix B instruction table that is in OPCODE order to a text format file and then compare each edition's table to the prior edition's table. I can say from personal experience that the "pdftotext" command-line utility available from the XPDF project ( https://www.xpdfreader.com/ ) (which is NOT the "pdftotext" version normally included in many linux systems) for Windows execution works pretty well on most editions of PoOPS once you use the right command-line parameters. Once extracted to pure text the tables are at least in a manipulable form that a subsequent text tool can massage into a format you can use for comparisons and extraction of "differences". But truthfully the OPTABLE lists are probably the easier solution. Just run a separate assembly with each OPTABLE value and massage the output to make the columns of instructions into one-line-per-instruction format and you will be able to compare each generation to the next. SMOP, and (g)awk or python would be a reasonable tool to do the text manipulation needed. Peter From: IBM Mainframe Assembler List <[email protected]> On Behalf Of Mark Hammack Sent: Wednesday, March 20, 2024 5:12 PM To: [email protected] Subject: OPCODE tables Is there a list somewhere (other than OPTABLE LIST) that shows which instructions were added at each hardware level? I thought PoP used to have something similar but I don't see anything back to Revision 7 (oldest copy I have). -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
