It's funny, I just recently looked into what the TRKADDR macro was doing, and found TRKADDR COMPARE uses a different set of instructions when SYSSTATE AMODE64=YES is set; which is silly, as it merely uses -G instructions instead of 32-bit ones (even funnier, it uses RLL, which is considerably newer than G regs). So even IBM doesn't keep it straight all the time.
Wait, there's more: I added the SYSSTATE to get the slightly better TRKADDR code, and then PUT got all huffy and whined that *it* doesn't support AMODE 64! Sheesh... I'd have thought they'd just check that in the QSAM routines, but I guess it's traditional that they just S0C4 when something isn't right. sas On Tue, May 5, 2015 at 9:48 AM, Steve Smith <[email protected]> wrote: > It's important to keep the concepts of 64-bit registers separate from > 64-bit addressing. The former supports that latter, but there are many > capabilities and benefits of 64-bit registers that have nothing to do with > addressing. Most -G instructions work the same in any addressing mode. A > few instructions (LA & cousins in particular) are modal, and do operate > differently depending on AMODE. > > Chapter 1 of of Principles of Operation, particularly the "Trimodal > Addressing" section, covers this fairly well. > > sas > > On Tue, May 5, 2015 at 9:36 AM, Brite < > [email protected]> wrote: > >> I compared to the performance of same programs before they were converted >> to 64-bit. How do those 64-bit instructions (e.g. LGR, STMG, LMG) work in >> 31-bit AMODE? This is the first I have to deal with 64-bit mode. >> > > > > -- > sas > -- sas
