Inelegant, but how about (worst case): LAY Rx,Target LAY Ry,Source MVC 0(L'Source,Rx),0(Ry)
It still eliminates the need to dedicate base registers, as long as you can manage to have or make two registers available. The compilers are pretty good at conserving and/or reusing registers, and you usually don't look at the generated code. > On 12/3/2010 12:59 PM, Farley, Peter x23353 wrote: > > C/C++ (and MetalC) will use the latest and greatest architecture > > instructions for ARCH(8),TUNE(8) (at V1R10, for z10) or ARCH(9),TUNE(9) (at > > V1R12 for z196) compiler options. Enterprise COBOL never does. I don't > > have access to Enterprise PL1, so I can't say what it uses. > > I'm familiar with C/C++ ARCH and TUNE. My question is an architectural one > that > deals with the lack of SS-instruction functionality in the set of instructions > supporting 20-bit (aka "long") displacements. An examination of some programs > here that appeared (at first) to be candidates for potential long-displacement > relief shows that MVC and CLC are some of the most heavily used instructions. > :-( > > -- > Edward E Jaffe > Phoenix Software International, Inc > 831 Parkview Drive North > El Segundo, CA 90245 > 310-338-0400 x318 > edja...@phoenixsoftware.com > http://www.phoenixsoftware.com/