Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
Hi everyone, I've been through the Fine Manual and the list archives, and according to my perusal this is not possible, but I'll throw it out there to the brain trust that is ASSEMBLER-LIST. I'm working on some instruction substitution macros to catch any slips of instructions like LLH into code that for one reason or another has to be assembled with MACHINE(ZS-2), as well as better MACHINEs. In one program, we are experimenting with TYPECHECK(REGISTER) by coding two sets of equates, one GR32 and one GR64. Our one hitch is that one of these macros - specifically one for LLH, uses one instruction that wants GR32 and one instruction that wants GR64. (I can see why instructions like IILL want GR64 - I may not agree with it, but I can see the premise.) Our basic register equates are defined such that I can determine the GR32 and GR64 equates from the register supplied. However, it would helpful to know if HLASM has gone into its "more restrictive" type checking (their words from Appendix N from the Programmer's Guide) to add this extra processing, or, if not, don't bother. There's no nice &SYSOPT_ flag for TYPECHECK, nor one saying "more restrictive" has kicked in. I realize that this may be difficult, nigh impossible, depending on where in the assembly process that "more restrictive" kicks in. To handle any register equates that don't conform to our naming standard (something like CBBASE EQU R10), the oft-requested ability to SETA to an EQU value inside a macro would be wonderful. But I'm not holding my breath on that one. Short of putting in a formal enhancement request for a &SYSOPT_ or other flag (or one for TYPECHECK and one for "more restrictive" checking), or waving at Sharuff and asking if he thinks this is a good idea, does anyone have any ideas? Cheers, Ray -- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ German is essentially a form of assembly language consisting entirely of far calls heavily accented with throaty guttural sounds. ---ilvi French is essentially German with messed-up pronunciation and spelling. --Robert B Wilson English is essentially French converted to 7-bit ASCII. ---Christophe Pierret [for Alain LaBonté]
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
I'm not entirely sure exactly what you want. But one thing that I do is use the Assembler parm MACHINE(architecture) to indicate my "highest level" instruction set. E.g. I use "//ASM EXEC PGM=ASMA90,PARM='MACHINE(ZSERIES-3)' to cause an assembler error if I were to use EXRL other instruction which would abend with an S0C1 on my z9BC. http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmi1020/A.2.30 Or is it that you want some macros to use which would expand to an LLH, if at the proper minimal MACHINE level, or to a "equivalent" set of "lower MACHINE level" instructions? If you want to test this, look at &SYSOPT_OPTABLE at: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmr1020/7.10.28 I don't understand the comments about LLH. Is is LLH vs. LLGH? And you want, somehow, to determine which to use? LLH should use GR32 equates and LLGH should use GR64 equates. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets® 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® is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company®, 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-LIST@LISTSERV.UGA.EDU] On Behalf Of Ray Mullins > Sent: Tuesday, June 19, 2012 11:29 AM > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: Checking for "more restrictive" TYPECHECK(REGISTER) > at assemble time > > Hi everyone, > > I've been through the Fine Manual and the list archives, and > according to my > perusal this is not possible, but I'll throw it out there to > the brain trust > that is ASSEMBLER-LIST. > > I'm working on some instruction substitution macros to catch > any slips of > instructions like LLH into code that for one reason or > another has to be > assembled with MACHINE(ZS-2), as well as better MACHINEs. In > one program, we > are experimenting with TYPECHECK(REGISTER) by coding two sets > of equates, > one GR32 and one GR64. Our one hitch is that one of these macros - > specifically one for LLH, uses one instruction that wants GR32 and one > instruction that wants GR64. (I can see why instructions like > IILL want GR64 > - I may not agree with it, but I can see the premise.) > > Our basic register equates are defined such that I can > determine the GR32 > and GR64 equates from the register supplied. However, it > would helpful to > know if HLASM has gone into its "more restrictive" type > checking (their > words from Appendix N from the Programmer's Guide) to add this extra > processing, or, if not, don't bother. There's no nice > &SYSOPT_ flag for > TYPECHECK, nor one saying "more restrictive" has kicked in. > I realize that > this may be difficult, nigh impossible, depending on where in > the assembly > process that "more restrictive" kicks in. > > To handle any register equates that don't conform to our > naming standard > (something like CBBASE EQU R10), the oft-requested ability to > SETA to an EQU > value inside a macro would be wonderful. But I'm not holding > my breath on > that one. > > Short of putting in a formal enhancement request for a > &SYSOPT_ or other > flag (or one for TYPECHECK and one for "more restrictive" > checking), or > waving at Sharuff and asking if he thinks this is a good > idea, does anyone > have any ideas? > > Cheers, > Ray > > -- > M. Ray Mullins > Roseville, CA, USA > http://www.catherdersoftware.com/ > > German is essentially a form of assembly language consisting > entirely of far calls heavily accented with throaty guttural > sounds. ---ilvi > French is essentially German with messed-up pronunciation and > spelling. --Robert B Wilson > English is essentially French converted to 7-bit ASCII. > ---Christophe Pierret [for Alain LaBonté] > >
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
LLH comes in at MACHINE(ZS-3), so the macro substitutes for LLH if assembled with MACHINE(ZS-2) and earlier. (O' is a nice addition.) I'm using a combination of LH and IILH (not IILL, as I wrote) to properly reflect the operation of LLH. LH wants GR32, IILH wants GR64. I'm working around that if the first operand is one of our register equates, but if someone slips something like LLH MYREG,ASCBASID where MYREG is tagged as GR, or not tagged at all, and "more restrictive" is not in effect, I'd like to bypass the code that gets the proper GR32 and GR64 EQUs. If "more restrictive" is in effect and they're using GR for their own equate, then screw 'em, let them deal with the ASMA323Ws. :) It's not a life-or-death situation. Let me just say that in what we've currently got now in our macro set, it would be nice to know when HLASM is in "more restrictive" mode. On 2012-06-19 09:57, McKown, John wrote: I'm not entirely sure exactly what you want. But one thing that I do is use the Assembler parm MACHINE(architecture) to indicate my "highest level" instruction set. E.g. I use "//ASM EXEC PGM=ASMA90,PARM='MACHINE(ZSERIES-3)' to cause an assembler error if I were to use EXRL other instruction which would abend with an S0C1 on my z9BC. http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmi1020/A.2.30 Or is it that you want some macros to use which would expand to an LLH, if at the proper minimal MACHINE level, or to a "equivalent" set of "lower MACHINE level" instructions? If you want to test this, look at&SYSOPT_OPTABLE at: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asmr1020/7.10.28 I don't understand the comments about LLH. Is is LLH vs. LLGH? And you want, somehow, to determine which to use? LLH should use GR32 equates and LLGH should use GR64 equates. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets® 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® is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company®, 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-LIST@LISTSERV.UGA.EDU] On Behalf Of Ray Mullins Sent: Tuesday, June 19, 2012 11:29 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time Hi everyone, I've been through the Fine Manual and the list archives, and according to my perusal this is not possible, but I'll throw it out there to the brain trust that is ASSEMBLER-LIST. I'm working on some instruction substitution macros to catch any slips of instructions like LLH into code that for one reason or another has to be assembled with MACHINE(ZS-2), as well as better MACHINEs. In one program, we are experimenting with TYPECHECK(REGISTER) by coding two sets of equates, one GR32 and one GR64. Our one hitch is that one of these macros - specifically one for LLH, uses one instruction that wants GR32 and one instruction that wants GR64. (I can see why instructions like IILL want GR64 - I may not agree with it, but I can see the premise.) Our basic register equates are defined such that I can determine the GR32 and GR64 equates from the register supplied. However, it would helpful to know if HLASM has gone into its "more restrictive" type checking (their words from Appendix N from the Programmer's Guide) to add this extra processing, or, if not, don't bother. There's no nice &SYSOPT_ flag for TYPECHECK, nor one saying "more restrictive" has kicked in. I realize that this may be difficult, nigh impossible, depending on where in the assembly process that "more restrictive" kicks in. To handle any register equates that don't conform to our naming standard (something like CBBASE EQU R10), the oft-requested ability to SETA to an EQU value inside a macro would be wonderful. But I'm not holding my breath on that one. Short of putting in a formal enhancement request for a &SYSOPT_ or other flag (or one for TYPECHECK and one for "more restrictive" checking), or waving at Sharuff and asking if he thinks this is a good idea, does anyone have any ideas? Cheers, Ray -- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ German is essentially a form of assembly language consisting entirely of far ca
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
Ah! I see, said the blind man. As he picked up his hammer and saw. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets® 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® is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company®, Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM > -Original Message- > From: Ray Mullins [mailto:m...@lerctr.org] > Sent: Tuesday, June 19, 2012 1:32 PM > To: IBM Mainframe Assembler List > Cc: McKown, John > Subject: Re: Checking for "more restrictive" > TYPECHECK(REGISTER) at assemble time > > LLH comes in at MACHINE(ZS-3), so the macro substitutes for > LLH if assembled > with MACHINE(ZS-2) and earlier. (O' is a nice addition.) > > I'm using a combination of LH and IILH (not IILL, as I wrote) > to properly > reflect the operation of LLH. LH wants GR32, IILH wants GR64. > I'm working > around that if the first operand is one of our register > equates, but if > someone slips something like LLH MYREG,ASCBASID where MYREG > is tagged as GR, > or not tagged at all, and "more restrictive" is not in > effect, I'd like to > bypass the code that gets the proper GR32 and GR64 EQUs. > > If "more restrictive" is in effect and they're using GR for their own > equate, then screw 'em, let them deal with the ASMA323Ws. :) > > It's not a life-or-death situation. Let me just say that in > what we've > currently got now in our macro set, it would be nice to know > when HLASM is > in "more restrictive" mode. > > On 2012-06-19 09:57, McKown, John wrote: > > I'm not entirely sure exactly what you want. But one thing > that I do is use the Assembler parm MACHINE(architecture) to > indicate my "highest level" instruction set. E.g. I use > "//ASM EXEC PGM=ASMA90,PARM='MACHINE(ZSERIES-3)' to cause an > assembler error if I were to use EXRL other instruction which > would abend with an S0C1 on my z9BC. > > > > > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asm > i1020/A.2.30 > > > > Or is it that you want some macros to use which would > expand to an LLH, if at the proper minimal MACHINE level, or > to a "equivalent" set of "lower MACHINE level" instructions? > If you want to test this, look at&SYSOPT_OPTABLE at: > > > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asm > r1020/7.10.28 > > > > I don't understand the comments about LLH. Is is LLH vs. > LLGH? And you want, somehow, to determine which to use? LLH > should use GR32 equates and LLGH should use GR64 equates. > > > > -- > > John McKown > > Systems Engineer IV > > IT > > > > Administrative Services Group > > > > HealthMarkets® > > > > 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® is the brand name for products underwritten > and issued by the insurance subsidiaries of HealthMarkets, > Inc. -The Chesapeake Life Insurance Company®, 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-LIST@LISTSERV.UGA.EDU] On Behalf Of Ray Mullins > >> Sent: Tuesday, June 19, 2012 11:29 AM > >> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > >> Subject: Checking for "more restrictive" TYPECHECK(REGISTER) > >> at assemble time > >> > >> Hi everyone, > >> > >> I've been through the Fine Manual and the list archives, and > >> according to my > >> perusal this is not possible, but I'll throw it out there to > >> the brain trust > >> that is ASSEMBLER-LIST. > >> > >> I'm working on some instruction substitution macros to catch >
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
1st time I heard that I laughed so hard I kicked the slats out of my cradle!! Duf On Tue, Jun 19, 2012 at 11:51 AM, McKown, John < john.mck...@healthmarkets.com> wrote: > Ah! I see, said the blind man. As he picked up his hammer and saw. > > -- > John McKown > Systems Engineer IV > IT > > Administrative Services Group > > HealthMarkets® > > 9151 Boulevard 26 . N. Richland Hills . TX 76010 > (817) 255-3225 phone . > john.mck...@healthmarkets.com . > www.HealthMarkets.com<http://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® is the brand name for products underwritten and > issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake > Life Insurance Company®, Mid-West National Life Insurance Company of > TennesseeSM and The MEGA Life and Health Insurance Company.SM > > > -Original Message- > > From: Ray Mullins [mailto:m...@lerctr.org] > > Sent: Tuesday, June 19, 2012 1:32 PM > > To: IBM Mainframe Assembler List > > Cc: McKown, John > > Subject: Re: Checking for "more restrictive" > > TYPECHECK(REGISTER) at assemble time > > > > LLH comes in at MACHINE(ZS-3), so the macro substitutes for > > LLH if assembled > > with MACHINE(ZS-2) and earlier. (O' is a nice addition.) > > > > I'm using a combination of LH and IILH (not IILL, as I wrote) > > to properly > > reflect the operation of LLH. LH wants GR32, IILH wants GR64. > > I'm working > > around that if the first operand is one of our register > > equates, but if > > someone slips something like LLH MYREG,ASCBASID where MYREG > > is tagged as GR, > > or not tagged at all, and "more restrictive" is not in > > effect, I'd like to > > bypass the code that gets the proper GR32 and GR64 EQUs. > > > > If "more restrictive" is in effect and they're using GR for their own > > equate, then screw 'em, let them deal with the ASMA323Ws. :) > > > > It's not a life-or-death situation. Let me just say that in > > what we've > > currently got now in our macro set, it would be nice to know > > when HLASM is > > in "more restrictive" mode. > > > > On 2012-06-19 09:57, McKown, John wrote: > > > I'm not entirely sure exactly what you want. But one thing > > that I do is use the Assembler parm MACHINE(architecture) to > > indicate my "highest level" instruction set. E.g. I use > > "//ASM EXEC PGM=ASMA90,PARM='MACHINE(ZSERIES-3)' to cause an > > assembler error if I were to use EXRL other instruction which > > would abend with an S0C1 on my z9BC. > > > > > > > > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asm > > i1020/A.2.30 > > > > > > Or is it that you want some macros to use which would > > expand to an LLH, if at the proper minimal MACHINE level, or > > to a "equivalent" set of "lower MACHINE level" instructions? > > If you want to test this, look at&SYSOPT_OPTABLE at: > > > > > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/asm > > r1020/7.10.28 > > > > > > I don't understand the comments about LLH. Is is LLH vs. > > LLGH? And you want, somehow, to determine which to use? LLH > > should use GR32 equates and LLGH should use GR64 equates. > > > > > > -- > > > John McKown > > > Systems Engineer IV > > > IT > > > > > > Administrative Services Group > > > > > > HealthMarkets® > > > > > > 9151 Boulevard 26 . N. Richland Hills . TX 76010 > > > (817) 255-3225 phone . > > > john.mck...@healthmarkets.com . > > > www.HealthMarkets.com<http://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® is the brand name for products underwritten > > and issued by the insurance subsidiaries of HealthMarkets, > > Inc. -The Chesapeake Life Insurance Company®, Mid-West > > National Life Insurance Company of TennesseeSM and The MEGA > > Life and Health Insurance Company.SM > > > > > >> -Origina
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
The SYSATTRA internal function can retrieve the Assembler Type assigned by an EQU,and the value is independent of the EQUated symbol (so you don't have to parse special names). Might that be useful? John Ehrman
Re: Checking for "more restrictive" TYPECHECK(REGISTER) at assemble time
On 2012-06-19 10:44, John Ehrman wrote: The SYSATTRA internal function can retrieve the Assembler Type assigned by an EQU,and the value is independent of the EQUated symbol (so you don't have to parse special names). Might that be useful? John Ehrman That's actually what I'm doing now. :) I was hoping to create logic that didn't require setting of the 5th EQU parameter. Maybe I'll add check logic and insure that any register EQU used as a parameter has the 5th parameter coded, and if not, fire off a nasty MNOTE. -- M. Ray Mullins Roseville, CA, USA http://www.catherdersoftware.com/ German is essentially a form of assembly language consisting entirely of far calls heavily accented with throaty guttural sounds. ---ilvi French is essentially German with messed-up pronunciation and spelling. --Robert B Wilson English is essentially French converted to 7-bit ASCII. ---Christophe Pierret [for Alain LaBonté]