Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 SMI; site sun.uucp Path: utzoo!linus!decvax!decwrl!sun!gnu From: gnu@sun.uucp (John Gilmore) Newsgroups: net.arch Subject: Re: 360 versus 370, MVCL, ICM, etc. Message-ID: <1744@sun.uucp> Date: Mon, 15-Oct-84 22:42:30 EDT Article-I.D.: sun.1744 Posted: Mon Oct 15 22:42:30 1984 Date-Received: Wed, 17-Oct-84 09:00:40 EDT References:<1433@bmcg.UUCP> <1313@ritcv.UUCP> <197@rlgvax.UUCP> Organization: Sun Microsystems, Inc. Lines: 25 Curiously enough, MVCL is such a complicated instruction that it is almost always faster to just run the old 360 MVC loop. I don't know if this has changed in newer 370's and Amdahls but it was true of the 145, 148, 155, 158, and 470V/6. PS: It is "MVCL" not "MVL". There's also "CLCL" (compare logical characters long), which was similarly slow but had the advantage that it would stop with the registers pointing to the mismatch, a feature not available in CLC. PPS: In many ways the 370 tried to innovate but just came up with worse instructions than the 360 way. Example: I doubt there was a single 360 assembler programmer who never wanted the "LT" (load from memory and test) instruction -- you had to do "L" then "LTR" (load then load&test-register). They "fixed" this in the 370 with the "ICM" instruction (insert characters under mask), which took a 4-bit mask and loaded 0 to 4 bytes into a register, setting the condition code the same as LTR. However, it's more than twice as slow as "L/LTR" and only accepts a subset of the possible addressing modes. Years ago I read an introduction to System/370 that talked about the new instructions and why they were created and in hindsight the design was clearly done by a committee. PPPS: In popular parlance the ICM and STCM instructions were called "Ick-em" and "Stick-em". Just thought you might want to know.