z/OS doesn't support RMODE=64 modules at present. Since LLGF loads a 32-bit address into a 64-bit register, it'll work for all valid 32-bit entry point address values. For 64-bit address fields, use LG.
Robert Ngan CSC Financial Services Group IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on 2015/08/10 18:00:04: > From: Bob Rutledge <deerh...@ix.netcom.com> > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Date: 2015/08/10 18:01 > Subject: Re: LOADING An AMODE64 Program > Sent by: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> > > If PROG@64 us a 64-bit address field; branching to its high-order word will > currently head for location 0. > > If PROG@64 is a 32-bit address field LLGF will leave bit 33 on and head for > never-never land. > > Bob > > On 8/10/2015 6:30 PM, Robert Ngan wrote: > > For the general case (i.e. modules that could be any AMODE), use: > > > > LLGF R15,PROG@64 > > BASSM R14,R15 > > > > Robert Ngan > > CSC Financial Services Group > > > > IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on > > 2015/08/09 09:22:39: > > > >> From: "esst...@juno.com" <esst...@juno.com> > >> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > >> Date: 2015/08/09 09:25 > >> Subject: Re: LOADING An AMODE64 Program > >> Sent by: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> > >> > >> Andreas and Bob > >> Thank You > >> > >> Let me see if I understand this > >> After the load I would issue the following > >> Rx - GeneralPurpose Registers > >> Gx - 64Bit Registers > >> > >> After the Load > >> ST R0,FWD > >> LLGTR G15,R0 > >> STG G15,PROG64@ > >> . > >> . > >> PROG64@ DC 2A(0) > >> FWD DC A(0) > >> . > >> . > >> * To Invoke the 64Amode Module > >> LARL R1,STRUCT31 31 Bit Structure > >> LG R15,PROG64@ Ensure R15 Has a Good Address > >> OILL R15,X'0001' Ensure bit 63 is 1 > >> BASSM R14,R15 Call PROG64 in AMODE 64 > >> * > >> So if the above sequence of instructions is corect Do I still Need > >> the OILL instruction ? > >> > >> Paul D'Angelo > >> ************* > >> > >> > >> > >> ---------- Original Message ---------- > >> From: "Andreas F. Geissbuehler" <afg0...@videotron.ca> > >> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > >> Subject: Re: LOADING An AMODE64 Program > >> Date: Sat, 8 Aug 2015 21:58:53 -0400 > >> > >> Bob Rutledge wrote: > >>> Yes, but note: If the loaded program is _marked_ AMODE 64, the > >> LOAD service > >>> will do all that stuff for you and return the 64-bit address in R0. > >>> > >>> On 8/8/2015 5:53 PM, Paul wrote: > >>>> Thanks Again > >>>> SO the sequenec of Instructions should look like this. > >>>> > >>>> LARL R1,STRUCT31 31 Bit Structure > >>>> L R15,PROG64@ Get Target Routine Address from Load > >>>> LLGTR R15,R15 Ensure R15 Has a Good Address > >>>> OILL R15,X'0001' Ensure bit 63 is 1 > >>>> BASSM R14,R15 Call PROG64 in AMODE 64 > >>>> > >>>> * > >>>> *31 Bit Storage > >>>> DS 0D > >>>> PROG64$ DC CL8'PROG64 ' > >>>> PROG64@ DC A(0) > >>>> * > >>>> STRUCT31 DS CL256 > >> > >> Paul, just in case you or someone decides to add AMODE 64 I'd change > >> PROG64@ DC A(0) --> 2A(0) > >> > >> Andreas Geissbuehler > >