> > @Shmuel: you know that an MVC loop is dramatically faster than MVCL? > > Surprising but true. > > MVCL handles zero-length moves. MVC never did. > MVCL handles variable-length moves, automatically. > MVCL is interruptible.
MVCL has to check for overlap, possibly before starting any data movement. MVC as an SS instruction can start the first data fetch before even realizing it's MVC. I understand why, way back in the day, they made MVCL an RR 2 byte instruction as it was likely the best fit for the register decoding with needing 4 registers but still it's sad as the 2 byte instruction doesn't really save instruction fetch time as MVCL usually requires several other instructions to set up the registers. MVCL also does too much. What I usually want is a "move the mininum" of the two operand lengths. I would rather have two instructions which have no need to be 2 byte instructions: MOVE -> like MVCL but only the move part, 2 even/odd registers PAD -> target like MVCL, source pad byte in register. This would work in all addressing modes 24/31/64 without changes and even avoids the need for MVCLE (move long extended). ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN