>> Your initial description of the problem said that you were short on
registers,
>> so the second and third proposed code snippets – where you zero a
register
>> – seem to conflict with this goal.

I wasn't clear on the situation.  Where I need to DO this, it is in an
initialization section where R0 through R7 are available for whatever use.
But where I need to USE this, I need all those registers free for other
things.

>> To avoid all of these issues, the MVHHI solution seems like a good bet
if the instruction is available.

Yes, MVHHI worked, but I ended up removing it because it turned out that I
needed a register initialized to zero anyway.  So, I went with
this--because I needed R5 at zero in the later code:

XR    R5,R5              STARTING FROM ZERO
STH   R5,STRGLEN          SET USED STRING LENGTH COUNTER

Sincerely,

Dave Clark
--
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331


On Tue, Feb 10, 2026 at 12:37 PM Dan Greiner <[email protected]> wrote:

> Your first and second proposed code snippets both use EXCLUSIVE OR, which
> happens to set the condition code. As a general rule, I tend to avoid
> CC-setting operations unless some subsequent instruction depends on the
> CC.  Also, if you're writing exceedingly clever code where previously-set
> CC is needed later, putting these snippets in between blows that cleverness
> away.
>
> Your initial description of the problem said that you were short on
> registers, so the second and third proposed code snippets – where you zero
> a register – seem to conflict with this goal.
>
> To avoid all of these issues, the MVHHI solution seems like a good bet if
> the instruction is available. MVHHI was introduced as part of the
> general-instructions-extension facility in February 2008 (IIRC, this puts
> it in the z10 family).
>

Reply via email to