Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!sdd.hp.com!swrinde!ucsd!ucbvax!CS.NIU.EDU!rickert From: rickert@CS.NIU.EDU ("Neil Rickert, N Illinois U, CS") Newsgroups: comp.lang.asm370 Subject: Re: MVCL (was Re: why code in 370 Assembler) Message-ID: <9104261742.AA22162@ucbvax.Berkeley.EDU> Date: 26 Apr 91 17:40:41 GMT References: <9104261709.AA04987@mp.cs.niu.edu> Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 22 >Invariably, registers 0, 1, 14, and 15 are available for use in an MVCL I usually avoid writing that type of program if I can. What if you have a reentrant subroutine, R15 is your base reg, R1 has parameters, R2-12 are tied up for your computationally intense algorithm, and the routine will be used heavily enough that you cannot afford the cost of a GETMAIN? >instruction -- with no saving/restoring of previous contents. In fact, >I rarely see Real Programmers using any other registers with an MVCL! > >Practical rule-of-thumb: > Another practical rule of thumb: If there is any chance whatsoever that the move will violate the MVCL restrictions on destructive overlap, use an MVC loop or a Load and Store loop (for aligned numeric data). Don't assume that just because the instruction is MVC or MVCL you are dealing with characters. It might just be an array of numbers. -Neil Rickert