> My curiosity is why MVCLE sets the CC, thus forcing user code to branch back. 
> Why not  just not update the PSW instruction address until all the data is 
> processed? Still allow the interrupt like MVCL does, of course. I understand 
> why the interrupt is necessary, especially in a single CP environment. Does 
> anybody know? Is it a "millicode" thing?


Well it *is* a millicode "thing" in so far as the instruction is implemented in 
millicode. So why does it work this way? The idea is that the instruction can 
come up for air somewhere in the middle and give the application the 
opportunity to do something else before continuing/resuming the move. Examples 
would be (perhaps) checking I/O completion, kicking off (another) I/O request, 
processing some business logic on the data being moved etc. Can't say I have 
ever come across a situation where that actually happens. But they are at least 
theoretically possible with MVCLE and *not* with the plain old fashioned MVCL. 
Realistically the only time that this would come into play is while doing very 
large moves on a busy system. Otherwise the MVCLE just does its thing and 
control passes to the next instruction. 
CC
                                          

Reply via email to