If you're not concerned about memory or performance, I'd think that the most readable would be SELECT with each WHEN having two tests linked with an AND.
BTW, is there an open requirement to move the SP macros into HLASM proper? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Binyamin Dissen <00001773bcccb823-dmarc-requ...@listserv.uga.edu> Sent: Monday, August 4, 2025 1:31 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Subject: Re: Execute-Type Instructions External Message: Use Caution That sounds like a good case for dual path assuming you can afford the memory. Use nacros to make the code readable. Things like MVC/CLC would need many paths to save the EX. On Sun, 3 Aug 2025 19:54:19 +0000 Seymour J Metz <sme...@gmu.edu> wrote: :>I you have code with a bunch of compares where the direction depends on an input parameter, it might be faster to set a register to B'11000000' or B'10100000' and then execute BC or BRC instructions. :> :>Some instructions, e.g., B2**, have part of the opcode in bits 8-15. This use of EX definitely needs good comments. :> :>-- :>Shmuel (Seymour J.) Metz :>http://mason.gmu.edu/~smetz3 :>??? ?????????? ??? :>?????? ??????????? ???? ?????????? :> :> :> :> :>________________________________________ :>From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Binyamin Dissen <00001773bcccb823-dmarc-requ...@listserv.uga.edu> :>Sent: Sunday, August 3, 2025 3:35 PM :>To: ASSEMBLER-LIST@LISTSERV.UGA.EDU <ASSEMBLER-LIST@LISTSERV.UGA.EDU> :>Subject: Re: Execute-Type Instructions :> :> :>External Message: Use Caution :> :> :>On Sun, 3 Aug 2025 19:12:33 +0000 Seymour J Metz <sme...@gmu.edu> wrote: :> :>:>Of the top of my head :>:> :>:> plugging in a cc mask :> :>Can't think how EX would be easier. :> :>:> plugging in a register :> :>I do use it for that, but it is really specialized code - not normal code. :> :>:> modifying an opcode :>: :>Interesting. Please elaborate. :>:- :>:>Shmuel (Seymour J.) Metz :>:>http://mason.gmu.edu/~smetz3 :>:>??? ?????????? ??? :>:>?????? ??????????? ???? ?????????? :>:> :>:> :>:> :>:> :>:>________________________________________ :>:>From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Binyamin Dissen <00001773bcccb823-dmarc-requ...@listserv.uga.edu> :>:>Sent: Sunday, August 3, 2025 7:07 AM :>:>To: ASSEMBLER-LIST@LISTSERV.UGA.EDU <ASSEMBLER-LIST@LISTSERV.UGA.EDU> :>:>Subject: Re: Execute-Type Instructions :>:> :>:> :>:>External Message: Use Caution :>:> :>:> :>:>On Fri, 1 Aug 2025 23:38:36 -0400 Dan Greiner <dan_grei...@att.net> wrote: :>:> :>:>:>As is well known to subscribers of the Assembler List, the EXECUTE instruction (EX) - and the (relatively) new variant of EXECUTE RELATIVE LONG (EXRL) - provide an extremely powerful means of altering the behavior of a target instruction by ORing the contents of a the rightmost bits of the first operand of the execute-type instruction into bits 8-15 of the target instruction. Common uses include modifying the length(s) of an SS-format instruction, the register(s), mask, or immediate field of RR, RX, SI, and many other formats of instructions (it is also sufficiently complex that it drives CPU designers slightly nuts). :>:> :>:>:>One reason an execute-type instruction is particularly tricky is that certain instruction formats contain part of the operation code in bits 8-15, thus the actual target instruction executed may not be that which appears in the memory. This can occur when the target instruction format is IE, RI, RIL, RRD, RRE, RRF, S, SIL, SSE, and SSF. :>:> :>:>:>My question is (aside from IBM diagnostics) does anybody actually exploit this sort of chicanery/guile/subterfuge in their code? :>:> :>:>Out of curiosity, which instructions (that do not alter length that is being :>:>altered would benefit from EX over straight forward coding?) -- Binyamin Dissen <bdis...@dissensoftware.com> http://secure-web.cisco.com/14EC6y7OskdSX5AQUfljmZdKu9IFieavwJ4ma1IUcPVEMa-Nemwko5ysH9I837j_Uf8ZHc3ujgHaU93-1o7ouCOwcl2bHrv21b1v7s2i9j----aYUSh96Lo-8IbSNj8U8EGfVRMYgdjUAN_J9WGV6yP56ObL1mHw2Hoz_bj_oUWw3iivsp-xMezvBB31KC4i1YEdcoHODySq0kqq_kSfkzmgLzCBYjDR4g9EgPCjNZYkSguqKktcsagY6-Hye87AYoGTeESUVYqvWwLB0MHBld2Vp1NM1WG5m4aAm7ygp-6yCi3XzhZynoXHD1ABls0P4cjnbD5fadCCS4AWxZFdUiQ_oQhT7fIgpGhZb5jVNydW6_oVf-uSdyJaSyqsrwHRSPdujeDvFg43I8VjlW1mTpu1X8Dh8ZBiAwGzMpRN_VS0/http%3A%2F%2Fwww.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel