I've started replacing the majority of executed MVC's in our code with MVCRL. It avoids the overhead of a EX/EXRL instruction, but has the (slight) disadvantage of requiring the use of R00, and cannot be used to initialize storage via an overlapping move.
Robert Ngan DXC Luxoft -----Original Message----- From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> On Behalf Of Seymour J Metz Sent: Tuesday, August 19, 2025 16:15 To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Execute-Type Instructions Re: Execute-Type Instructions Seymour J Metz IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> I suspect that the double MVC is more of a performance issue than the cache hit. I typically use LOCTR to avoid the duplicate execution. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר ________________________________________ From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf of Rupert Reynolds <00001bc7bfc4ffd1-dmarc-requ...@listserv.uga.edu> Sent: Tuesday, August 19, 2025 3:57 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Subject: Re: Execute-Type Instructions External Message: Use Caution Back in the 1990s I was using an inline EX_ME MVC DEST(*-*),SOURCE EX R0,EX_ME because our per4mans guys said branching around the MVC cost more than moving the 1st byte twice, while storing the MVC elsewhere might slow data cacheing. I expect any optimisations from the old days that are still worth it have been kept and there will some fresh ones. Last I heard was when MVCL and CLCL had been improved to beat multiple MVC and CLC in most cases. But surely these differences are very small, compared with choice of compiler, algorithm and so on? Roops -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר