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/

Reply via email to