LOC TITLE 'LOCATION OF A VARIABLE.' 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** * 93751 00000020 *TITLELOC -- LOCATION OF A VARIABLE 00000030 *A 00000040 *A SYSTEM PROGRAM SYS1.SUBLIB 00000050 *A MAINTAINED BY SYSTEMS AND PROGRAMMING 00000060 *A LANGUAGE S/360 ASSEMBLER 00000070 *A AUTHOR FRANCIS COLLINS 00000080 *A WRITTEN 6-19-68 00000090 * REVISED 2-25-72 00000100 *A 00000110 *A 00000120 *A ENTRY N = LOC (X), NORMAL FORTRAN FUNCTION CALL 00000130 *A INPUT X = A FORTRAN VARIABLE ANY 00000140 *A OUTPUT N = LOCATION OR ABSOLUTE ADDRESS OF X 00000150 *A 00000160 *A 00000170 *A LOC (X) CAN BE USED IN ANY FORTRAN ARITHMETIC STATEMENT. 00000180 * FORTRAN COMPILER PUTS THE ADDRESS OF X IN GENERAL REGISTER 1 00000190 * (I.E., THE ADDRESS OF THE ARGUMENT LIST). X MAY HAVE SUBSCRIPTS 00000200 *A X MAY HAVE SUBSCRIPTS AND MAY BE OF ANY TYPE AND ANY LENGTH. 00000210 *A 00000220 *A THE FIRST BYTE OF N IS SET TO ZERO. 00000230 * PROGRAM RETURNS N IN GENERAL REGISTER ZERO. FORTRAN COMPILER 00000240 * PROVIDES FOR STORING N. 00000250 *A 00000260 *AEND 00000270 SPACE 00000280 SPACE 00000290 LOC CSECT 00000300 USING LOC,15 00000310 SPACE 00000320 SPACE 00000330 B A BRANCH AROUND NAME. 00000340 DC X'03' LENGTH OF NAME. 00000350 DC C'LOC' NAME. 00000360 SPACE 00000370 SPACE 00000380 A L 15,0(,1) R15 = ADDRESS OF X. R15 NOT SAVED. 00000390 LA 0,0(,15) R0 = R15 EXCEPT FIRST BYTE OF R0 IS ZERO. 00000400 SR 15,15 R15 = RETURN CODE = 0. 00000410 BR 14 00000420 SPACE 00000430 SPACE 00000440 END 00000450