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 >> > >