Destroys the contents of R15, so I guess I would load R15 into, say, R0 and do 
the OR operation on R0. However, I'm on a z9 and will likely never be on 
anything more advanced. So I'll need to load the mask into another register, 
say R1. That would either require an L R1,variable or literal (=X'FFFFFFFC'), 
or do an: AHI R1,X'04' followed by an LCR R1,R1. I don't know which of those is 
"better". I guess the Load would be more easily understood by even a novice.

        LR      R0,R15
        L       R1,=A(-4)
        OR      R0,R1
        CR      R0,R1
        JNE     BAD_RC

--
John McKown
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone *
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM


> -----Original Message-----
> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-
> l...@listserv.uga.edu] On Behalf Of John Gilmore
> Sent: Monday, August 27, 2012 10:20 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: which instructions should I use?
>
> Register contents that are a multiple of 4 are all of the form
>
> xxxxx...xx00
>
> Inclusive ORing such a value with the mask
>
> 11111...1100
>
> and testing the result for equality with this same mask then yields a
> simple, low-overhead test for a multiple-of-four value.
>
> --jg
>
> On 8/27/12, McKown, John <john.mck...@healthmarkets.com> wrote:
> > Thanks for the technique. I'm not sure that I like the NILL
> instruction at
> > this point. It could change an "invalid" (as in "not planned for") RC
> into a
> > "valid" RC. Looks like maybe I could use TMLL to just test. (TMLL
> > R15,X'000C')
> >
> > --
> > John McKown
> > Systems Engineer IV
> > IT
> >
> > Administrative Services Group
> >
> > HealthMarkets(r)
> >
> > 9151 Boulevard 26 * N. Richland Hills * TX 76010
> > (817) 255-3225 phone *
> > john.mck...@healthmarkets.com * www.HealthMarkets.com
> >
> > Confidentiality Notice: This e-mail message may contain confidential
> or
> > proprietary information. If you are not the intended recipient,
> please
> > contact the sender by reply e-mail and destroy all copies of the
> original
> > message. HealthMarkets(r) is the brand name for products underwritten
> and
> > issued by the insurance subsidiaries of HealthMarkets, Inc. -The
> Chesapeake
> > Life Insurance Company(r), Mid-West National Life Insurance Company
> of
> > TennesseeSM and The MEGA Life and Health Insurance Company.SM
> >
> >
> >> -----Original Message-----
> >> From: IBM Mainframe Assembler List [mailto:ASSEMBLER-
> >> l...@listserv.uga.edu] On Behalf Of Martin Truebner
> >> Sent: Monday, August 27, 2012 8:15 AM
> >> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> >> Subject: Re: which instructions should I use?
> >>
> >> John,
> >>
> >> >> you still need base+displacement .... desire for an index
> register;
> >>
> >> They come in most cases when there is space in the nibbles for it.
> But
> >> for the case you cited there is no need to cover code in
> >> "procedure division" with a base. (Dynamic storage and literalpool
> >> do have a base!) -Here is how:
> >>
> >>         CALL PROGRAM,(PARM1,PARM2),VL
> >>         CHI  R15,=Y(MAXENTRIES)
> >>         JH   INVALID_RC
> >>         L    R15,=A(RC0,RC4,RC8,RCC)(R15)
> >>         BR   R15
> >>
> >> Your addon (check for a valid rc) could also be done with this
> >>
> >>         NILL R15,X'000C'
> >>
> >> as a result you only have valid combinations left over (Yes I
> cheated
> >> and added an entry for C).
> >>
> >> --
> >> Martin
> >>
> >> Pi_cap_CPU - all you ever need around MWLC/SCRT/CMT in z/VSE
> >> more at http://www.picapcpu.de
> >

Reply via email to