On Tue, 20 Oct 2020 16:58:52 -0400 Steve Smith <sasd...@gmail.com> said:
<snip begin> And for something completely different... sometimes I use MVCK for a variable-length move instead of EX/MVC or MVCL. I haven't done any performance tests, because I haven't used it in performance-critical code (and it does have a warning that it is slow). But for programming convenience, getting & setting the key is (at least slightly) less of an annoyance than setting up EX. I vaguely recall a rumor that there is an MVCX milli-code instruction that works the same without the key specification. Sure would be nice if that appeared in PoOp. <snip end> Perhaps you are thinking of the MVCOS (Move with Optional Specifications) instruction? The instruction has been around for quite a while. To the best of my knowledge, the instruction was first documented in SA22-7832-06 (z/Architecture Principles of Operation, 7th edition, February 2008) and was patented by IBM in Europe on 29 November 2007 (International Publication Number WO 2007/134646 A1). And as you noted, all of these "storage access key" type of data copying instructions (MVCK, MVCSK, MVCDK, etc.) are going to have poorer performance than instructions like MVC, MVCL and MVCLE, but they can be convenient/appropriate to use in certain situations. Quoting from Principles of Operation: "The performance of MOVE WITH KEY on most models may be significantly slower than that of the MOVE (MVC) and MOVE LONG instructions." Bob