What you're doing is fine on any machine.

Your question does, however, suggest  that something akin to the
MACHINE option should be available as a system variable, say
&SYSM_MACHINE, that could be interrogated within a macro to produce
different code for different target machines.

--jg

On 8/27/12, McKown, John <john.mck...@healthmarkets.com> wrote:
> 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