1 " *************************************************************************
  2 " *                                                                       *
  3 " * Copyright (c) 1980 by Centre Interuniversitaire de Calcul de Grenoble *
  4 " * and Institut National de Recherche en Informatique et Automatique     *
  5 " *                                                                       *
  6 " * Copyright, (C) Massachusetts Institute of Technology, 1973            *
  7 " *                                                                       *
  8 " *************************************************************************
  9 
 10 " HISTORY COMMENTS:
 11 "  1) change(86-10-09,JMAthane), approve(86-10-09,MCR7521),
 12 "     audit(86-10-09,JPFauche), install(86-11-12,MR12.0-1208):
 13 "     Pascal Version 8.03 for MR12.0.
 14 "                                                      END HISTORY COMMENTS
 15 
 16 "         OPTIMIZED PROCEDURES OF THE MULTICS PASCAL COMPILER
 17 "
 18 "
 19 "         RACINE>SEARCH
 20 "         -----------------
 21 "
 22 "
 23           segdef    search
 24 "
 25 "
 26           equ       maxident,32
 27           equ       recidscopelength,58
 28           equ       nxtelplaceincontextable,8
 29           equ       nameplaceincontextable,0
 30           equ       return_ptr,20
 31           equ       trans_op_tv_ptr,40
 32           equ       work_0,80
 33 "
 34 "
 35 search:
 36           epaq      0,ic
 37           lprp4     7|22,*au
 38           epp0      7|trans_op_tv_ptr,*
 39           epp0      0|8,*
 40           ldq       <RACINE.defs>|[top]
 41           tmi       end_downto
 42           epp3      <RACINE.defs>|[aval]
 43 downto_loop:
 44           stq       6|work_0
 45           mpy       recidscopelength,dl
 46           epp1      <RACINE.defs>|[display],ql*
 47 while_loop:
 48           eax1      1|-1
 49           tze       end_while
 50           cmpc      (pr),(pr),fill(040)
 51           desc9a    1|nameplaceincontextable,maxident
 52           desc9a    3|0,maxident
 53           tnz       aval_not_found
 54           ldq       6|work_0
 55           stq       <RACINE.defs>|[disx]
 56           spri1     <RACINE.defs>|[ctptr]
 57           tra       6|return_ptr,*
 58 aval_not_found:
 59           epp1      1|nxtelplaceincontextable,*
 60           tra       while_loop
 61 end_while:
 62           ldq       6|work_0
 63           sbq       1,dl
 64           tpl       downto_loop
 65 end_downto:
 66           stz       <RACINE.defs>|[disx]
 67           spri1     <RACINE.defs>|[ctptr]
 68           tra       6|return_ptr,*
 69 "
 70 "
 71 "         END OF SEARCH
 72 "
 73 "
 74 "
 75 "
 76 "         RACINE>SRCHREC
 77 "         ------------------
 78 "
 79 "
 80           segdef    srchrec
 81 "
 82 "
 83 srchrec:
 84           epaq      0,ic
 85           lprp4     7|22,*au
 86           epaq      0,ic
 87           epp1      0|2,*
 88           epp1      1|0,*
 89           epp0      7|trans_op_tv_ptr,*
 90           epp0      0|8,*
 91           epp3      <RACINE.defs>|[aval]
 92 rec_while_loop:
 93           eax1      1|-1
 94           tze       rec_end_while
 95           cmpc      (pr),(pr),fill(040)
 96           desc9a    1|nameplaceincontextable,maxident
 97           desc9a    3|0,maxident
 98           tnz       rec_aval_not_found
 99 rec_end_while:
100           spri1     <RACINE.defs>|[ctptr]
101           tra       6|return_ptr,*
102 rec_aval_not_found:
103           epp1      1|nxtelplaceincontextable,*
104           tra       rec_while_loop
105 "
106 "
107 "
108 "         END OF SRCHREC
109 "
110 "
111 "
112           end