Since MVCDK is not an interruptible instruction, it has to move all of the data, or program check and move nothing. There can be no partial moving.
I think that MVC in usually implemented with special hardware to detect and optimize the one byte propagation case, since that is known to be a common programing technique going back to the 360 machines. Hypothetically presuming that MVCDK is implemented in millicode, and that hardware does not provide a MVC-like assist to millicode which can fetch using one key and store using another key, one could conceive that millicode might do something like EXRL an MVC to fetch using the PSW key and move to HSA, and then EXRL another MVC to move from HSA, storing using the destination key. That would lead to the results that the original poster observed. I don't know offhand how millicode implements MVCDK on current machines. I know engineers to ask if I really needed to know. Jim Mulder ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
