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

Reply via email to