On 23 June 2016 at 17:51, Phil Smith III <li...@akphs.com> wrote:
>
> With all of the 273 new formats of LOAD, I assume this is hiding in there 
> somewhere:

> I have a value in grande register 3. I need the high-order bits in 32-bit R0
> and the low-order bits in 32-bit R15.

The RxSB... instructions are marvels in several ways, not least for
having in some cases five operands, and in some cases 7-character
names. And because there are some extended assembler mnemonics that
bear no resemblance to the name or description of the base
instruction.

RISBLG[Z] is Rotate then Insert Selected Bits Low [and Zero remaining bits].

There is an extended mnemonic LLHFR (presumably Load Low from High
Fullword Register) that generates

RISBLGZ R1,R2,0,31,32

but even the RISBLGZ mnemonic is an extension of the base RISBLG that
turns on the "Zero remaining bits" flag.

These are actually great instructions for all sorts of things, and are
recommended for performance reasons in Kevin Shum's IBM z Systems
Processor Optimization Primer. If there's a catch, it's that they
require the High Word Facility. I must admit I spent an embarassing
number of minutes wondering why there are no versions of these
instruction that rotate right...

Oh yes, so what I'm trying to say is that two variations on RISBxG[Z]
would probably do just what you need.

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to