> > @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

Reply via email to