#include <perms.h>

                                                                //      1  %externalstring(255)%fnspec date
#line 1 "regression-compile-tmp/vax-pass3.imp"
extern _imp_string /*%string(255)*/ DATE( void );
                                                                //      2  %externalstring(255)%fnspec time
#line 2 "regression-compile-tmp/vax-pass3.imp"
extern _imp_string /*%string(255)*/ TIME( void );
                                                                //      3  %systemroutinespec exit %alias "exit" (%integer rc)
#line 3 "regression-compile-tmp/vax-pass3.imp"
extern void exit( int RC );
                                                                //      4  
                                                                //      5  %externalintegerfnspec cputime
#line 5 "regression-compile-tmp/vax-pass3.imp"
extern int CPUTIME( void );
                                                                //      6  %externalroutinespec getblock %alias "GETBLOCK_JSB" (%integer len, %bytename base)
#line 6 "regression-compile-tmp/vax-pass3.imp"
extern void GETBLOCK( int LEN, unsigned char /*name*/*BASE ) __asm__("GETBLOCK_JSB");
                                                                //      7  %externalintegerfunctionspec getlong %alias "GETLONG_JSB"
#line 7 "regression-compile-tmp/vax-pass3.imp"
extern int GETLONG( void ) __asm__("GETLONG_JSB");
                                                                //      8  %externalintegerfunctionspec getword %alias "GETWORD_JSB"
#line 8 "regression-compile-tmp/vax-pass3.imp"
extern int GETWORD( void ) __asm__("GETWORD_JSB");
                                                                //      9     %externalroutinespec get(%integername n)
#line 9 "regression-compile-tmp/vax-pass3.imp"
extern void GET( int /*name*/*N );
                                                                //     10     %externalroutinespec put(%integer n)
#line 10 "regression-compile-tmp/vax-pass3.imp"
extern void PUT( int N );
                                                                //     11     %externalroutinespec putword(%integer n)
#line 11 "regression-compile-tmp/vax-pass3.imp"
extern void PUTWORD( int N );
                                                                //     12     %externalroutinespec putlong(%integer n)
#line 12 "regression-compile-tmp/vax-pass3.imp"
extern void PUTLONG( int N );
                                                                //     13     %externalroutinespec putblock(%integer len, %bytename b)
#line 13 "regression-compile-tmp/vax-pass3.imp"
extern void PUTBLOCK( int LEN, unsigned char /*name*/*B );
                                                                //     14  !   Computer Science IMP77 Compiler   -   Version 8  Third pass
                                                                //     15  !      23rd March 1981
                                                                //     16  !      Mods by MT October/November 1981
                                                                //     17  !
                                                                //     18  ! Uses common include file defining constants,
                                                                //     19  ! spec'ing common externals etc.
                                                                //     20  !
                                                                //     21  !!%include "control.imp"
                                                                //     22  
                                                                //     23  {%systemroutinespec exit %alias "exit" (%integer s)
                                                                //     24  !%external %routine %spec  PUT (%integer n)
                                                                //     25  !%external %routine %spec  PUT WORD (%integer n)
                                                                //     26  !%external %routine %spec  PUT LONG (%integer n)
                                                                //     27  !%external %routine %spec  PUT BLOCK (%integer n, %bytename b)
                                                                //     28  %external %routine %spec  SELECT INPUT TANK (%integer n)
#line 28 "regression-compile-tmp/vax-pass3.imp"
extern void SELECTINPUTTANK( int N );
                                                                //     29  %external %routine %spec  SELECT OUTPUT TANK (%integer n)
#line 29 "regression-compile-tmp/vax-pass3.imp"
extern void SELECTOUTPUTTANK( int N );
                                                                //     30  !%external %routine %spec  GET (%integer %name ch)
                                                                //     31  !%external %routine %spec  GET BLOCK (%integer len, %byte %name b)
                                                                //     32  %external %routine %spec  PRINT RECORD (%integer len, %byte %name buff)
#line 32 "regression-compile-tmp/vax-pass3.imp"
extern void PRINTRECORD( int LEN, unsigned char /*name*/*BUFF );
                                                                //     33  %external %integer %function %spec  LOOK
#line 33 "regression-compile-tmp/vax-pass3.imp"
extern int LOOK( void );
                                                                //     34  !%external %integer %function %spec  GETWORD
                                                                //     35  !%external %integer %function %spec  GETLONG
                                                                //     36  %external %integer %function %spec  TAG %alias "GETLONG";  ! For pass 2
#line 36 "regression-compile-tmp/vax-pass3.imp"
extern int TAG( void ) __asm__("GETLONG");
                                                                //     37  %external %string(63) %function %spec  ITOS (%integer n, p)
#line 37 "regression-compile-tmp/vax-pass3.imp"
extern _imp_string /*%string(63)*/ ITOS( int N, int P );
                                                                //     38  
                                                                //     39  ! streams
                                                                //     40  %const %integer  report      = 0
                                                                //     41  %const %integer  object file = 1
                                                                //     42  %const %integer  listing     = 2
                                                                //     43  %const %integer  diag stream = listing
                                                                //     44  
                                                                //     45  ! miscellaneous
                                                                //     46  %const %integer  max ident = 31;        ! Length for external linkage
                                                                //     47  %const %integer  fatal = 16_1000002C;   ! Error exit code to VMS
                                                                //     48  
                                                                //     49  
                                                                //     50  ! external data (defined in driver)
                                                                //     51  %external %string(6) %spec  version;    ! Compiler version string
#line 51 "regression-compile-tmp/vax-pass3.imp"
extern _imp_string /*%string(6)*/ VERSION;
                                                                //     52  %external %integer %spec  command
#line 52 "regression-compile-tmp/vax-pass3.imp"
extern int COMMAND;
                                                                //     53  %external %integer %spec  control
#line 53 "regression-compile-tmp/vax-pass3.imp"
extern int CONTROL;
                                                                //     54  
                                                                //     55  ! command bit meanings (set by command line)
                                                                //     56  %const %integer  diag bit  = 8_00004
                                                                //     57  %const %integer  line bit  = 8_00010
                                                                //     58  %const %integer  log bit   = 8_00020
                                                                //     59  %const %integer  time bit  = 8_01000
                                                                //     60  %const %integer  entry bit = 8_02000
                                                                //     61  %const %integer  init bit  = 8_04000
                                                                //     62  %const %integer  pic bit   = 8_10000
                                                                //     63  
                                                                //     64  ! control bit meanings  (%control n, or set by driver (/check= etc))
                                                                //     65  ! bit set => check on
                                                                //     66  
                                                                //     67  %const %integer  ass check  =   1;      ! unassigned checking
                                                                //     68  %const %integer  str check  =   2;      ! string capacity checking
                                                                //     69  %const %integer  for check  =   4;      ! %for checking
                                                                //     70  %const %integer  arr check  =   8;      ! array bound checking
                                                                //     71  %const %integer  ovf check  =  16;      ! integer overflow checking
                                                                //     72  %const %integer  rec round  = 128;      ! rounding in records (turns it on)
                                                                //     73  %const %integer  profiling  = 256;      ! call TRACE (line no) at bounds
                                                                //     74  
                                                                //     75  ! object file commands  Pass2 => Pass3
                                                                //     76  
                                                                //     77  %const %integer  obj extern    = 1;     ! insert external entry
                                                                //     78  %const %integer  obj code      = 2;     ! code block
                                                                //     79  %const %integer  obj gla       = 3;     ! gla  block
                                                                //     80  %const %integer  obj pdef      = 4;     ! external proc definition
                                                                //     81  %const %integer  obj pspec     = 5;     ! external proc specification
                                                                //     82  %const %integer  obj ddef      = 6;     ! external data definition
                                                                //     83  %const %integer  obj dspec     = 7;     ! external data specification
                                                                //     84  %const %integer  obj reloc     = 8;     ! relocate gla
                                                                //     85  %const %integer  obj set       = 9;     ! set gla to tag address
                                                                //     86  %const %integer  obj header    = 10;    ! start of procedure
                                                                //     87  %const %integer  obj call      = 11;    ! procedure call
                                                                //     88  %const %integer  obj jump      = 12;    ! jump
                                                                //     89  %const %integer  obj prim spec = 13;    ! prim definition
                                                                //     90  %const %integer  obj end       = 14;    ! end of object file
                                                                //     91  %const %integer  obj line      = 15;    ! line number
                                                                //     92  %const %integer  obj term      = 16;    ! end of block
                                                                //     93  %const %integer  obj diag p    = 17;    ! diags for proc header
                                                                //     94  %const %integer  obj diag v    = 18;    ! diags for variable
                                                                //     95  %const %integer  obj weak      = 19
                                                                //     96  %const %integer  obj b lab     = 20;    ! bxxb in m/code
                                                                //     97  %const %integer  obj w lab     = 21;    ! bxxw in m/code
                                                                //     98  %const %integer  obj glam      = 22;    ! initialise n items in GLA
                                                                //     99  %const %integer  obj modd      = 23;    ! modify displacement
                                                                //    100  %const %integer  obj prim ref  = 24;    ! call to prim
                                                                //    101  %const %integer  obj ext ref   = 25;    ! call to external procedure
                                                                //    102  %const %integer  last obj code = 25
                                                                //    103  
                                                                //    104  ! directive file commands  Pass2 => Pass3
                                                                //    105  
                                                                //    106  %const %integer  dir used      = 1;     ! external used
                                                                //    107  %const %integer  dir ldef      = 2;     ! label definition
                                                                //    108  %const %integer  dir pref      = 3;     ! procedure reference
                                                                //    109  %const %integer  dir cref      = 4;     ! conditional label reference
                                                                //    110  %const %integer  dir uref      = 5;     ! unconditional label reference
                                                                //    111  %const %integer  dir end       = 6;     ! end of procedure
                                                                //    112  %const %integer  dir sizes     = 7;     ! end of directives+sizes
                                                                //    113  %const %integer  dir x end     = 8;     ! end of external entry
                                                                //    114  %const %integer  dir header    = 9;     ! start of procedure
                                                                //    115  %const %integer  dir entry     = 10;    ! define entry label
                                                                //    116  %const %integer  last dir code = 10
                                                                //    117  
                                                                //    118  !!%end %of %file
                                                                //    119  
                                                                //    120  ! Size constants
                                                                //    121  %const %integer  max tag       = 4000;        ! total tags in use
                                                                //    122  %const %integer  max ref       = 6000;        ! references to tags
                                                                //    123  %const %integer  max procs     =  600;        ! procedures in module
                                                                //    124  %const %integer  max externals =  400;        ! external defs/refs
                                                                //    125  %const %integer  max rec       =  512;        ! object record size
                                                                //    126  
                                                                //    127  %external %routine  PASS3 (%string(63) module, %integer object, directives)
#line 127 "regression-compile-tmp/vax-pass3.imp"
void PASS3( _imp_string /*%string(63)*/ MODULE, int OBJECT, int DIRECTIVES )
#line 127 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    128     %integer  check ass = control&ass check;      ! unassigned checking on
#line 128 "regression-compile-tmp/vax-pass3.imp"
int CHECKASS;
#line 128 "regression-compile-tmp/vax-pass3.imp"
CHECKASS = ((CONTROL) & (1));
                                                                //    129     %integer  diags     = command&diag bit;       ! dump diag psect
#line 129 "regression-compile-tmp/vax-pass3.imp"
int DIAGS;
#line 129 "regression-compile-tmp/vax-pass3.imp"
DIAGS = ((COMMAND) & (4));
                                                                //    130     %integer  ldump     = command&line bit;       ! dump lines (trace) psect
#line 130 "regression-compile-tmp/vax-pass3.imp"
int LDUMP;
#line 130 "regression-compile-tmp/vax-pass3.imp"
LDUMP = ((COMMAND) & (8));
                                                                //    131     %integer  pic       = command&pic bit;        ! PIC for gla
#line 131 "regression-compile-tmp/vax-pass3.imp"
int PIC;
#line 131 "regression-compile-tmp/vax-pass3.imp"
PIC = ((COMMAND) & (4096));
                                                                //    132     %integer  init      = command&init bit;       ! initialisation needed
#line 132 "regression-compile-tmp/vax-pass3.imp"
int INIT;
#line 132 "regression-compile-tmp/vax-pass3.imp"
INIT = ((COMMAND) & (2048));
                                                                //    133     %integer  timing    = command&time bit;       ! full timing report
#line 133 "regression-compile-tmp/vax-pass3.imp"
int TIMING;
#line 133 "regression-compile-tmp/vax-pass3.imp"
TIMING = ((COMMAND) & (512));
                                                                //    134     %integer  clog      = command&log bit;        ! summary to console
#line 134 "regression-compile-tmp/vax-pass3.imp"
int CLOG;
#line 134 "regression-compile-tmp/vax-pass3.imp"
CLOG = ((COMMAND) & (16));
                                                                //    135  
                                                                //    136     %const %integer  proc enter prim = 13;        ! = "$_M"
                                                                //    137  
                                                                //    138     %const %integer  non zero = 1;                ! boolean
                                                                //    139  
                                                                //    140     ! Op-codes
                                                                //    141     %const %integer  brb    = 16_11;              ! +127/-128
                                                                //    142     %const %integer  brw    = 16_31;              ! +32767/-32768
                                                                //    143     %const %integer  jmp    = 16_17;              ! anywhere...
                                                                //    144     %const %integer  bneq   = 16_12, bnequ = 16_12
                                                                //    145     %const %integer  beql   = 16_13, beqlu = 16_13
                                                                //    146     %const %integer  bgtr   = 16_14
                                                                //    147     %const %integer  bleq   = 16_15
                                                                //    148     %const %integer  bgeq   = 16_18
                                                                //    149     %const %integer  blss   = 16_19
                                                                //    150     %const %integer  bgtru  = 16_1A
                                                                //    151     %const %integer  blequ  = 16_1B
                                                                //    152     %const %integer  bgequ  = 16_1E
                                                                //    153     %const %integer  blssu  = 16_1F
                                                                //    154     %const %integer  jsb    = 16_16
                                                                //    155     %const %integer  calls  = 16_FB
                                                                //    156     %const %integer  movl   = 16_D0
                                                                //    157     %const %integer  moval  = 16_DE
                                                                //    158     %const %integer  movab  = 16_9E
                                                                //    159     %const %integer  subl2  = 16_C2
                                                                //    160     %const %integer  movc5  = 16_2C
                                                                //    161  
                                                                //    162     ! Branch table - invert (branch (b)) = branch(b!!7)
                                                                //    163     %const %byte %array  branch (0 : 15) =
#line 163 "regression-compile-tmp/vax-pass3.imp"
const unsigned char BRANCH[16] = { 17, 19, 25, 21, 20, 24, 18, 0, 17, 19, 31, 27, 26, 30, 18, 0,  };
                                                                //    164        brb,   beql,  blss,  bleq,  bgtr,  bgeq,  bneq,   0,      {signed}
                                                                //    165      { u/c     =      <      <=     >      >=      #   never }
                                                                //    166        brb,   beqlu, blssu, blequ, bgtru, bgequ, bnequ,  0       {unsigned}
                                                                //    167  
                                                                //    168  
                                                                //    169     %const %integer  margin   = 800;              ! stretch margin for jumps
                                                                //    170     %const %integer  safe low = 16_ffff8001+margin
                                                                //    171     %const %integer  safe high= 16_00008000-margin
                                                                //    172  
                                                                //    173     %const %integer  middling = 16_1000;          ! word disp ref
                                                                //    174  
                                                                //    175     ! Object record constants
                                                                //    176  
                                                                //    177     %const %integer  obj hdr = 0
                                                                //    178     %const %integer      hdr mhd = 0;             ! module header
                                                                //    179     %const %integer      hdr lng = 1;             ! language sub-header
                                                                //    180  
                                                                //    181     %const %integer  obj gsd = 1
                                                                //    182     %const %integer      gsd psc = 0;             ! P-sect def
                                                                //    183     %const %integer      gsd sym = 1;             ! Symbol (def/ref)
                                                                //    184     %const %integer      gsd epm = 2;             ! Ext def + mask
                                                                //    185  
                                                                //    186     %const %integer  obj tir = 2
                                                                //    187     %const %integer      tir stag    = 0;         ! Stack global symbol
                                                                //    188     %const %integer      tir stasb   = 1;         ! Stack signed byte
                                                                //    189     %const %integer      tir stasw   = 2
                                                                //    190     %const %integer      tir stal    = 3
                                                                //    191     %const %integer      tir stpbb   = 4
                                                                //    192     %const %integer      tir stpbw   = 5
                                                                //    193     %const %integer      tir stpbl   = 6
                                                                //    194     %const %integer      tir staub   = 7;         ! Stack unsigned byte
                                                                //    195     %const %integer      tir stob    = 20;        ! Store signed byte
                                                                //    196     %const %integer      tir stow    = 21;        ! Store signed word
                                                                //    197     %const %integer      tir stol    = 22;        ! Store longword
                                                                //    198     %const %integer      tir stold   = 25;        ! Store longword
                                                                //    199     %const %integer      tir stopidr = 27;        ! Store PIC data reference
                                                                //    200     %const %integer      tir stopicr = 28;        ! Store PIC reference
                                                                //    201     %const %integer      tir sto rl  = 31;        ! Store repeated long
                                                                //    202     %const %integer      tir stoub   = 33;        ! Store unsigned byte
                                                                //    203     %const %integer      tir stogb   = 37;        ! Store general byte
                                                                //    204     %const %integer      tir sto rb  = 39;        ! Store repeated byte
                                                                //    205     %const %integer      tir sto rw  = 40;        ! Store repeated word
                                                                //    206     %const %integer      tir add     = 51
                                                                //    207     %const %integer      tir setrb   = 80
                                                                //    208     %const %integer      tir augrb   = 81
                                                                //    209  
                                                                //    210     %const %integer  obj eom = 3
                                                                //    211     %const %integer  obj dbg = 4
                                                                //    212  
                                                                //    213     !P-sect info
                                                                //    214  
                                                                //    215     %const %integer  quad = 3;                    ! 8(=2**3)-byte alignment
                                                                //    216  
                                                                //    217     %const %integer  ps pic = 1<<0
                                                                //    218     %const %integer  ps rel = 1<<3
                                                                //    219     %const %integer  ps shr = 1<<5
                                                                //    220     %const %integer  ps exe = 1<<6
                                                                //    221     %const %integer  ps rd  = 1<<7
                                                                //    222     %const %integer  ps wrt = 1<<8
                                                                //    223  
                                                                //    224     %own %integer %name  ca
#line 224 "regression-compile-tmp/vax-pass3.imp"
static int /*name*/*CA;
                                                                //    225     %own %integer %name  ga
#line 225 "regression-compile-tmp/vax-pass3.imp"
static int /*name*/*GA;
                                                                //    226     %own %integer  base        =  0
#line 226 "regression-compile-tmp/vax-pass3.imp"
static int BASE = 0;
                                                                //    227     %own %short    ref head    =  0
#line 227 "regression-compile-tmp/vax-pass3.imp"
static short REFHEAD = 0;
                                                                //    228     %own %short %name  ref chain;   ref chain == ref head
#line 228 "regression-compile-tmp/vax-pass3.imp"
static short /*name*/*REFCHAIN;
#line 228 "regression-compile-tmp/vax-pass3.imp"
REFCHAIN = &REFHEAD;
                                                                //    229     %own %short    def list    =  0;      !ordered list of labels
#line 229 "regression-compile-tmp/vax-pass3.imp"
static short DEFLIST = 0;
                                                                //    230     %own %integer  this line   =  0
#line 230 "regression-compile-tmp/vax-pass3.imp"
static int THISLINE = 0;
                                                                //    231     %own %integer  entry tag   = -1
#line 231 "regression-compile-tmp/vax-pass3.imp"
static int ENTRYTAG = (-1);
                                                                //    232  
                                                                //    233     %const %integer  code flags = ps pic ! ps rel ! ps rd  ! ps exe ! ps shr
                                                                //    234     %own   %integer  glap flags = ps rd  ! ps wrt ! ps rel ! ps pic
#line 234 "regression-compile-tmp/vax-pass3.imp"
static int GLAPFLAGS = 393;
                                                                //    235  !                    glap flags = glap flags ! ps pic %if pic # 0
                                                                //    236     %const %integer  diag flags = ps pic ! ps rel ! ps rd  ! ps shr
                                                                //    237     %const %integer  line flags = ps pic ! ps rel ! ps rd  ! ps shr
                                                                //    238  
                                                                //    239     %const %string(10)  code name = "$_CODEAREA"
#line 239 "regression-compile-tmp/vax-pass3.imp"
const _imp_string /*%string(10)*/ CODENAME = _imp_str_literal("$_CODEAREA");
                                                                //    240     %own   %string(10)  glap name = "$_GLAPAREA"
#line 240 "regression-compile-tmp/vax-pass3.imp"
static _imp_string /*%string(10)*/ GLAPNAME = _imp_str_literal("$_GLAPAREA");
                                                                //    241  !                       glap name = "$_GLAPPIC"
                                                                //    242     %const %string(10)  diag name = "$_DIAGAREA"
#line 242 "regression-compile-tmp/vax-pass3.imp"
const _imp_string /*%string(10)*/ DIAGNAME = _imp_str_literal("$_DIAGAREA");
                                                                //    243     %const %string(10)  line name = "$_CODELINE"
#line 243 "regression-compile-tmp/vax-pass3.imp"
const _imp_string /*%string(10)*/ LINENAME = _imp_str_literal("$_CODELINE");
                                                                //    244     %const %string(10)  init proc = "IMP$_INIT"
#line 244 "regression-compile-tmp/vax-pass3.imp"
const _imp_string /*%string(10)*/ INITPROC = _imp_str_literal("IMP$_INIT");
                                                                //    245  
                                                                //    246     %integer  refs, last tag
#line 246 "regression-compile-tmp/vax-pass3.imp"
int REFS;
#line 246 "regression-compile-tmp/vax-pass3.imp"
int LASTTAG;
                                                                //    247     %integer  code size, glap size, diag size, line size
#line 247 "regression-compile-tmp/vax-pass3.imp"
int CODESIZE;
#line 247 "regression-compile-tmp/vax-pass3.imp"
int GLAPSIZE;
#line 247 "regression-compile-tmp/vax-pass3.imp"
int DIAGSIZE;
#line 247 "regression-compile-tmp/vax-pass3.imp"
int LINESIZE;
                                                                //    248     %integer  procs, events, event base, evp, specs
#line 248 "regression-compile-tmp/vax-pass3.imp"
int PROCS;
#line 248 "regression-compile-tmp/vax-pass3.imp"
int EVENTS;
#line 248 "regression-compile-tmp/vax-pass3.imp"
int EVENTBASE;
#line 248 "regression-compile-tmp/vax-pass3.imp"
int EVP;
#line 248 "regression-compile-tmp/vax-pass3.imp"
int SPECS;
                                                                //    249     %own %string(max ident)  text
#line 249 "regression-compile-tmp/vax-pass3.imp"
static _imp_string /*%string(31)*/ TEXT;
                                                                //    250  
                                                                //    251     %record %format  psect fm (%integer bp, pa, dump, bs, lr, lrp,
#line 251 "regression-compile-tmp/vax-pass3.imp"
typedef struct PSECTFM PSECTFM;
struct PSECTFM {
  int BP;
  int PA;
  int DUMP;
  int BS;
  int LR;
  int LRP;
  int INDEX;
  int LBS;
  int BB;
  int BE;
  int MAX;
  unsigned char TYPE;
  unsigned char B[512];
};
                                                                //    252                                %integer index, lbs, bb, be, max,
                                                                //    253                                (%byte type %or
                                                                //    254                                 %byte %array b (1 : maxrec)))
                                                                //    255     %own %record(psect fm)  codep, glapp, workp, diagp, linep
#line 255 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM CODEP;
#line 255 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM GLAPP;
#line 255 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM WORKP;
#line 255 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM DIAGP;
#line 255 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM LINEP;
                                                                //    256     %own %record(psect fm) %name  buff;     ! Points at one of above
#line 256 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM /*name*/*BUFF;
                                                                //    257  
                                                                //    258     %record %format  ref fm (%integer ca, tag, %short flag, link)
#line 258 "regression-compile-tmp/vax-pass3.imp"
typedef struct REFFM REFFM;
struct REFFM {
  int CA;
  int TAG;
  short FLAG;
  short LINK;
};
                                                                //    259     %record %format  def fm (%integer ca, %short uses, link)
#line 259 "regression-compile-tmp/vax-pass3.imp"
typedef struct DEFFM DEFFM;
struct DEFFM {
  int CA;
  short USES;
  short LINK;
};
                                                                //    260     %record(def fm) %array  def (0 : max tag)
#line 260 "regression-compile-tmp/vax-pass3.imp"
 DEFFM DEF[4001];
                                                                //    261     %record(ref fm) %array  ref (1 : max ref)
#line 261 "regression-compile-tmp/vax-pass3.imp"
 REFFM REF[6000];
                                                                //    262  
                                                                //    263     %record %format  proc fm (%integer frame,
#line 263 "regression-compile-tmp/vax-pass3.imp"
typedef struct PROCFM PROCFM;
struct PROCFM {
  int FRAME;
  short TYPE;
  short MASK;
  short DIAG;
  short DIAGEP;
  short LINEEP;
};
                                                                //    264                               %short type, mask, diag, diag ep, line ep)
                                                                //    265     %record(proc fm) %array  proc tab (1 : max procs)
#line 265 "regression-compile-tmp/vax-pass3.imp"
 PROCFM PROCTAB[600];
                                                                //    266  
                                                                //    267     %byte              %array  ext used (1 : max externals)
#line 267 "regression-compile-tmp/vax-pass3.imp"
unsigned char EXTUSED[400];
                                                                //    268     %string(max ident) %array  ext text (1 : max externals)
#line 268 "regression-compile-tmp/vax-pass3.imp"
_imp_string /*%string(31)*/ EXTTEXT[400];
                                                                //    269  
                                                                //    270  
                                                                //    271     %routine  ERROR (%string(31) text, %integer extra)
#line 271 "regression-compile-tmp/vax-pass3.imp"
void ERROR( _imp_string /*%string(31)*/ TEXT, int EXTRA )
#line 271 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    272        select output (report)
#line 272 "regression-compile-tmp/vax-pass3.imp"
_imp_SELECTOUTPUT(0);
                                                                //    273        newline
#line 273 "regression-compile-tmp/vax-pass3.imp"
_imp_NEWLINE();
                                                                //    274        print string ("***Pass3 fails """);  print string (text)
#line 274 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal("***Pass3 fails \""));
#line 274 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(TEXT);
                                                                //    275        print string (""" (");  write (extra, 0);  print symbol (')')
#line 275 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal("\" ("));
#line 275 "regression-compile-tmp/vax-pass3.imp"
_imp_WRITE(EXTRA, 0);
#line 275 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSYMBOL(41);
                                                                //    276        newline
#line 276 "regression-compile-tmp/vax-pass3.imp"
_imp_NEWLINE();
                                                                //    277        %monitor
#line 277 "regression-compile-tmp/vax-pass3.imp"
_imp_monitor(0, (_imp_current_line != 0 ? _imp_current_line : __LINE__), (_imp_current_file != 0 ? _imp_current_file : __FILE__), __PRETTY_FUNCTION__);
                                                                //    278        exit (16_1000002c)     {1000002c is SS$_ABORT with the inhibit message bit set - could just use EXIT_FAILURE}
#line 278 "regression-compile-tmp/vax-pass3.imp"
exit(268435500);
                                                                //    279     %end
#line 279 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ERROR at level 2
                                                                //    280  
                                                                //    281     %routine  GET STRING (%string(*) %name  t)
#line 281 "regression-compile-tmp/vax-pass3.imp"
void GETSTRING( _imp_string /*%string(255)*/ /*name*/*T )
#line 281 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    282        %integer  len, file len
#line 282 "regression-compile-tmp/vax-pass3.imp"
int LEN;
#line 282 "regression-compile-tmp/vax-pass3.imp"
int FILELEN;
                                                                //    283        get (len)
#line 283 "regression-compile-tmp/vax-pass3.imp"
GET(&LEN);
                                                                //    284        file len = len
#line 284 "regression-compile-tmp/vax-pass3.imp"
FILELEN = LEN;
                                                                //    285        error ("external size?", len) %unless 0 < len <= max ident
#line 285 "regression-compile-tmp/vax-pass3.imp"
if ((((0) >= (LEN))) || (((LEN) <= (31)))) goto L_0003;
#line 285 "regression-compile-tmp/vax-pass3.imp"
L_0002:;
#line 285 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("external size?"), LEN);
#line 285 "regression-compile-tmp/vax-pass3.imp"
L_0003:;
                                                                //    286        len = len - 1 %if len = max ident {make room for '_' in Gla name}
#line 286 "regression-compile-tmp/vax-pass3.imp"
if (((LEN) != (31))) goto L_0004;
#line 286 "regression-compile-tmp/vax-pass3.imp"
LEN = (((int)(LEN)) - (1));
#line 286 "regression-compile-tmp/vax-pass3.imp"
L_0004:;
                                                                //    287        length(t) = len
#line 287 "regression-compile-tmp/vax-pass3.imp"
*_imp_LENGTH(T) = LEN;
                                                                //    288        getblock (file len, charno(t,1))
#line 288 "regression-compile-tmp/vax-pass3.imp"
GETBLOCK(FILELEN, _imp_CHARNO(T, 1));
                                                                //    289     %end
#line 289 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block GETSTRING at level 2
                                                                //    290  
                                                                //    291     %routine %spec  STPB (%record(psect fm) %name p, %integer d)
#line 291 "regression-compile-tmp/vax-pass3.imp"
auto void STPB(  PSECTFM /*name*/*P, int D );
                                                                //    292     %routine %spec  ADD (%integer b)
#line 292 "regression-compile-tmp/vax-pass3.imp"
auto void ADD( int B );
                                                                //    293     %routine  FLUSH BUFF
#line 293 "regression-compile-tmp/vax-pass3.imp"
void FLUSHBUFF( void )
#line 293 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    294        %integer %name  bp
#line 294 "regression-compile-tmp/vax-pass3.imp"
int /*name*/*BP;
                                                                //    295        bp == buff_bp
#line 295 "regression-compile-tmp/vax-pass3.imp"
BP = &BUFF->BP;
                                                                //    296        %if bp > max rec %start
#line 296 "regression-compile-tmp/vax-pass3.imp"
if (((*BP) <= (512))) goto L_0005;
                                                                //    297           ! over the limits!
                                                                //    298           error ("buffer error - seek help!!", bp-maxrec)
#line 298 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("buffer error - seek help!!"), ((*(int *)(BP)) - (512)));
                                                                //    299        %finish
#line 299 "regression-compile-tmp/vax-pass3.imp"
L_0005:;
                                                                //    300        %if buff_dump # 0 %start
#line 300 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) == (0))) goto L_0006;
                                                                //    301           error ("buffer error", 1) %if buff_bs > 0;  ! Still in IMMED mode
#line 301 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->BS) <= (0))) goto L_0007;
#line 301 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("buffer error"), 1);
#line 301 "regression-compile-tmp/vax-pass3.imp"
L_0007:;
                                                                //    302           %if bp > 1 %start
#line 302 "regression-compile-tmp/vax-pass3.imp"
if (((*BP) <= (1))) goto L_0008;
                                                                //    303              print record (bp, buff_b(1))
#line 303 "regression-compile-tmp/vax-pass3.imp"
PRINTRECORD(*BP, &BUFF->B[0]);
                                                                //    304           %finish
#line 304 "regression-compile-tmp/vax-pass3.imp"
L_0008:;
                                                                //    305        %finish
#line 305 "regression-compile-tmp/vax-pass3.imp"
L_0006:;
                                                                //    306        buff_bs = 0;  buff_be = 0;  buff_lbs = 0;  buff_lr = 0
#line 306 "regression-compile-tmp/vax-pass3.imp"
BUFF->BS = 0;
#line 306 "regression-compile-tmp/vax-pass3.imp"
BUFF->BE = 0;
#line 306 "regression-compile-tmp/vax-pass3.imp"
BUFF->LBS = 0;
#line 306 "regression-compile-tmp/vax-pass3.imp"
BUFF->LR = 0;
                                                                //    307        bp = 1;                   ! leave type field
#line 307 "regression-compile-tmp/vax-pass3.imp"
*BP = 1;
                                                                //    308        %if buff_type = obj tir %and buff_dump # 0 %start
#line 308 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->TYPE) != (2))) goto L_0009;
#line 308 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) == (0))) goto L_0009;
                                                                //    309           ! fill in reloc command
                                                                //    310           stpb (buff, buff_pa);  add (tir setrb)
#line 310 "regression-compile-tmp/vax-pass3.imp"
STPB(BUFF, BUFF->PA);
#line 310 "regression-compile-tmp/vax-pass3.imp"
ADD(80);
                                                                //    311           buff_lr = buff_bp;  buff_lrp = 1
#line 311 "regression-compile-tmp/vax-pass3.imp"
BUFF->LR = BUFF->BP;
#line 311 "regression-compile-tmp/vax-pass3.imp"
BUFF->LRP = 1;
                                                                //    312        %finish
#line 312 "regression-compile-tmp/vax-pass3.imp"
L_0009:;
                                                                //    313     %end
#line 313 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block FLUSHBUFF at level 2
                                                                //    314  
                                                                //    315     %routine  NEED (%integer  b)
#line 315 "regression-compile-tmp/vax-pass3.imp"
void NEED( int B )
#line 315 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    316        ! ensure there are at least b bytes free in current buffer
                                                                //    317        flush buff %if buff_bp + b > max rec
#line 317 "regression-compile-tmp/vax-pass3.imp"
if ((((((int)(BUFF->BP)) + (B))) <= (512))) goto L_000a;
#line 317 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
#line 317 "regression-compile-tmp/vax-pass3.imp"
L_000a:;
                                                                //    318     %end
#line 318 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block NEED at level 2
                                                                //    319  
                                                                //    320     %routine  SET WORK (%integer type)
#line 320 "regression-compile-tmp/vax-pass3.imp"
void SETWORK( int TYPE )
#line 320 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    321        buff == workp;  flush buff
#line 321 "regression-compile-tmp/vax-pass3.imp"
BUFF = &WORKP;
#line 321 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //    322        workp = 0;  workp_dump = 1
#line 322 "regression-compile-tmp/vax-pass3.imp"
WORKP = (PSECTFM){ 0 } /* Assign 0's to all fields of record */;
#line 322 "regression-compile-tmp/vax-pass3.imp"
WORKP.DUMP = 1;
                                                                //    323        workp_type = type;  workp_bp = 1
#line 323 "regression-compile-tmp/vax-pass3.imp"
WORKP.TYPE = TYPE;
#line 323 "regression-compile-tmp/vax-pass3.imp"
WORKP.BP = 1;
                                                                //    324     %end
#line 324 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SETWORK at level 2
                                                                //    325  
                                                                //    326     %routine  ADD (%integer b)
#line 326 "regression-compile-tmp/vax-pass3.imp"
void ADD( int B )
#line 326 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    327        %return %if buff_dump = 0
#line 327 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_000b;
#line 327 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 327 "regression-compile-tmp/vax-pass3.imp"
L_000b:;
                                                                //    328        buff_bp = buff_bp + 1;  buff_b(buff_bp) = b&255
#line 328 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (1));
#line 328 "regression-compile-tmp/vax-pass3.imp"
BUFF->B[(((int)(BUFF->BP)) - (1))] = ((B) & (255));
                                                                //    329     %end
#line 329 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADD at level 2
                                                                //    330  
                                                                //    331     %routine  ADDW (%integer n)
#line 331 "regression-compile-tmp/vax-pass3.imp"
void ADDW( int N )
#line 331 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    332        %return %if buff_dump = 0
#line 332 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_000c;
#line 332 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 332 "regression-compile-tmp/vax-pass3.imp"
L_000c:;
                                                                //    333        shortinteger(addr(buff_b(buff_bp+1))) = n
#line 333 "regression-compile-tmp/vax-pass3.imp"
*_imp_SHORTINTEGER(_imp_ADDR(&BUFF->B[(((int)((((int)(BUFF->BP)) + (1)))) - (1))])) = N;
                                                                //    334        buff_bp = buff_bp + 2
#line 334 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (2));
                                                                //    335     %end
#line 335 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADDW at level 2
                                                                //    336  
                                                                //    337     %routine  ADDL (%integer n)
#line 337 "regression-compile-tmp/vax-pass3.imp"
void ADDL( int N )
#line 337 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    338        %return %if buff_dump = 0
#line 338 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_000d;
#line 338 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 338 "regression-compile-tmp/vax-pass3.imp"
L_000d:;
                                                                //    339        integer(addr(buff_b(buff_bp+1))) = n
#line 339 "regression-compile-tmp/vax-pass3.imp"
*_imp_INTEGER(_imp_ADDR(&BUFF->B[(((int)((((int)(BUFF->BP)) + (1)))) - (1))])) = N;
                                                                //    340        buff_bp = buff_bp + 4
#line 340 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (4));
                                                                //    341     %end
#line 341 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADDL at level 2
                                                                //    342  
                                                                //    343     %routine  ADD STRING (%integer from, %string(63) s)
#line 343 "regression-compile-tmp/vax-pass3.imp"
void ADDSTRING( int FROM, _imp_string /*%string(63)*/ S )
#line 343 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    344        %integer b, l
#line 344 "regression-compile-tmp/vax-pass3.imp"
int B;
#line 344 "regression-compile-tmp/vax-pass3.imp"
int L;
                                                                //    345        %return %if buff_dump = 0
#line 345 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_000e;
#line 345 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 345 "regression-compile-tmp/vax-pass3.imp"
L_000e:;
                                                                //    346        l = length(s)
#line 346 "regression-compile-tmp/vax-pass3.imp"
L = *_imp_LENGTH(&S);
                                                                //    347        %if from = 0 %start
#line 347 "regression-compile-tmp/vax-pass3.imp"
if (((FROM) != (0))) goto L_000f;
                                                                //    348           string(addr(buff_b(buff_bp+1))) = s
#line 348 "regression-compile-tmp/vax-pass3.imp"
*_imp_STRING(_imp_ADDR(&BUFF->B[(((int)((((int)(BUFF->BP)) + (1)))) - (1))])) = S;
                                                                //    349           buff_bp = buff_bp + 1
#line 349 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (1));
                                                                //    350        %else
#line 350 "regression-compile-tmp/vax-pass3.imp"
goto L_0010;
#line 350 "regression-compile-tmp/vax-pass3.imp"
L_000f:;
                                                                //    351           b = buff_b(buff_bp)
#line 351 "regression-compile-tmp/vax-pass3.imp"
B = BUFF->B[(((int)(BUFF->BP)) - (1))];
                                                                //    352           string(addr(buff_b(buff_bp))) = s
#line 352 "regression-compile-tmp/vax-pass3.imp"
*_imp_STRING(_imp_ADDR(&BUFF->B[(((int)(BUFF->BP)) - (1))])) = S;
                                                                //    353           buff_b(buff_bp) = b
#line 353 "regression-compile-tmp/vax-pass3.imp"
BUFF->B[(((int)(BUFF->BP)) - (1))] = B;
                                                                //    354        %finish
#line 354 "regression-compile-tmp/vax-pass3.imp"
L_0010:;
                                                                //    355        buff_bp = buff_bp + l
#line 355 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (L));
                                                                //    356     %end
#line 356 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADDSTRING at level 2
                                                                //    357  
                                                                //    358     %routine  ADD TEXT (%integer data)
#line 358 "regression-compile-tmp/vax-pass3.imp"
void ADDTEXT( int DATA )
#line 358 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    359        %string(max ident) t = text
#line 359 "regression-compile-tmp/vax-pass3.imp"
_imp_string /*%string(31)*/ T;
#line 359 "regression-compile-tmp/vax-pass3.imp"
T = TEXT;
                                                                //    360        %return %if buff_dump = 0
#line 360 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_0011;
#line 360 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 360 "regression-compile-tmp/vax-pass3.imp"
L_0011:;
                                                                //    361        t = t . "_" %if data # 0
#line 361 "regression-compile-tmp/vax-pass3.imp"
if (((DATA) == (0))) goto L_0012;
#line 361 "regression-compile-tmp/vax-pass3.imp"
T = _imp_join((_imp_string)T,(_imp_string)_imp_str_literal("_"));
#line 361 "regression-compile-tmp/vax-pass3.imp"
L_0012:;
                                                                //    362        add string (0, t)
#line 362 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, T);
                                                                //    363     %end
#line 363 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ADDTEXT at level 2
                                                                //    364  
                                                                //    365     %integer %function  RANGE (%integer disp, extra)
#line 365 "regression-compile-tmp/vax-pass3.imp"
int RANGE( int DISP, int EXTRA )
#line 365 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    366        %result = 1 %if -128 <= disp <= 127
#line 366 "regression-compile-tmp/vax-pass3.imp"
if (((((-128)) > (DISP))) || (((DISP) > (127)))) goto L_0013;
#line 366 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return 1;
#line 366 "regression-compile-tmp/vax-pass3.imp"
L_0013:;
                                                                //    367        %result = 2 %if 16_FFFF8000 <= disp-extra <= 16_7FFF
#line 367 "regression-compile-tmp/vax-pass3.imp"
if (((((-32768)) > ((((int)(DISP)) - (EXTRA))))) || ((((((int)(DISP)) - (EXTRA))) > (32767)))) goto L_0014;
#line 367 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return 2;
#line 367 "regression-compile-tmp/vax-pass3.imp"
L_0014:;
                                                                //    368        %result = 4
#line 368 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return 4;
                                                                //    369     %end
#line 369 "regression-compile-tmp/vax-pass3.imp"
} // End of block RANGE at level 2
                                                                //    370  
                                                                //    371     %routine  STAG (%string(max ident+3) S)
#line 371 "regression-compile-tmp/vax-pass3.imp"
void STAG( _imp_string /*%string(34)*/ S )
#line 371 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    372        need (1+1+length(S))
#line 372 "regression-compile-tmp/vax-pass3.imp"
NEED((((unsigned char)(2)) + (*_imp_LENGTH(&S))));
                                                                //    373        add (tir stag);   add string (0, S)
#line 373 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
#line 373 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, S);
                                                                //    374     %end
#line 374 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STAG at level 2
                                                                //    375  
                                                                //    376     %routine  TIR COMMAND (%integername value, %integer param,
#line 376 "regression-compile-tmp/vax-pass3.imp"
void TIRCOMMAND( int /*name*/*VALUE, int PARAM, unsigned char /*arrayname*/*CLIST )
#line 376 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    377                            %byte %array %name  clist)
                                                                //    378        %integer  size
#line 378 "regression-compile-tmp/vax-pass3.imp"
int SIZE;
                                                                //    379        size = range (value, 0)
#line 379 "regression-compile-tmp/vax-pass3.imp"
SIZE = RANGE(*VALUE, 0);
                                                                //    380        need (2+size)
#line 380 "regression-compile-tmp/vax-pass3.imp"
NEED((((int)(2)) + (SIZE)));
                                                                //    381        add (clist(size))
#line 381 "regression-compile-tmp/vax-pass3.imp"
ADD(CLIST[SIZE]);
                                                                //    382        add (param) %if param >= 0
#line 382 "regression-compile-tmp/vax-pass3.imp"
if (((PARAM) < (0))) goto L_0015;
#line 382 "regression-compile-tmp/vax-pass3.imp"
ADD(PARAM);
#line 382 "regression-compile-tmp/vax-pass3.imp"
L_0015:;
                                                                //    383        %if size = 1 %start
#line 383 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (1))) goto L_0016;
                                                                //    384           add (value)
#line 384 "regression-compile-tmp/vax-pass3.imp"
ADD(*VALUE);
                                                                //    385        %else %if size = 2
#line 385 "regression-compile-tmp/vax-pass3.imp"
goto L_0017;
#line 385 "regression-compile-tmp/vax-pass3.imp"
L_0016:;
#line 385 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (2))) goto L_0018;
                                                                //    386           addw (value)
#line 386 "regression-compile-tmp/vax-pass3.imp"
ADDW(*VALUE);
                                                                //    387        %else
#line 387 "regression-compile-tmp/vax-pass3.imp"
goto L_0017;
#line 387 "regression-compile-tmp/vax-pass3.imp"
L_0018:;
                                                                //    388           addl (value)
#line 388 "regression-compile-tmp/vax-pass3.imp"
ADDL(*VALUE);
                                                                //    389        %finish
#line 389 "regression-compile-tmp/vax-pass3.imp"
L_0017:;
                                                                //    390        value = size
#line 390 "regression-compile-tmp/vax-pass3.imp"
*VALUE = SIZE;
                                                                //    391     %end
#line 391 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block TIRCOMMAND at level 2
                                                                //    392  
                                                                //    393     %routine  STPB (%record(psect fm) %name p, %integer offset)
#line 393 "regression-compile-tmp/vax-pass3.imp"
void STPB(  PSECTFM /*name*/*P, int OFFSET )
#line 393 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    394        %own %byte %array  stpbc (1 : 4) =
#line 394 "regression-compile-tmp/vax-pass3.imp"
static unsigned char STPBC[4] = { 4, 5, 0, 6,  };
                                                                //    395           tir stpbb, tir stpbw, 0, tir stpbl
                                                                //    396        tir command (offset, p_index, stpbc)
#line 396 "regression-compile-tmp/vax-pass3.imp"
TIRCOMMAND(&OFFSET, P->INDEX, /*is_array_name3*/ &((STPBC-1)[0]));
                                                                //    397     %end
#line 397 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STPB at level 2
                                                                //    398  
                                                                //    399     %routine  STAK (%integer  value)
#line 399 "regression-compile-tmp/vax-pass3.imp"
void STAK( int VALUE )
#line 399 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    400        %own %byte %array  stac (1 : 4) =
#line 400 "regression-compile-tmp/vax-pass3.imp"
static unsigned char STAC[4] = { 1, 2, 0, 3,  };
                                                                //    401           tir stasb,  tir stasw, 0, tir stal
                                                                //    402        tir command (value, -1, stac)
#line 402 "regression-compile-tmp/vax-pass3.imp"
TIRCOMMAND(&VALUE, (-1), /*is_array_name3*/ &((STAC-1)[0]));
                                                                //    403     %end
#line 403 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STAK at level 2
                                                                //    404  
                                                                //    405     %routine  SELECT (%integer disp)
#line 405 "regression-compile-tmp/vax-pass3.imp"
void SELECT( int DISP )
#line 405 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    406        %return %if buff_dump = 0
#line 406 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_0019;
#line 406 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 406 "regression-compile-tmp/vax-pass3.imp"
L_0019:;
                                                                //    407        need (7);                 ! Sequence must be in one record!
#line 407 "regression-compile-tmp/vax-pass3.imp"
NEED(7);
                                                                //    408        error ("psect overflow", disp) %if disp > buff_max
#line 408 "regression-compile-tmp/vax-pass3.imp"
if (((DISP) <= (BUFF->MAX))) goto L_001a;
#line 408 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("psect overflow"), DISP);
#line 408 "regression-compile-tmp/vax-pass3.imp"
L_001a:;
                                                                //    409        %if buff_lr = buff_bp %start
#line 409 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->LR) != (BUFF->BP))) goto L_001b;
                                                                //    410           ! Have not planted anything since last 'select'
                                                                //    411           buff_bp = buff_lrp;    ! Forget last select
#line 411 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = BUFF->LRP;
                                                                //    412           buff_pa = -20;         ! Ensure this one planted!
#line 412 "regression-compile-tmp/vax-pass3.imp"
BUFF->PA = (-20);
                                                                //    413        %finish
#line 413 "regression-compile-tmp/vax-pass3.imp"
L_001b:;
                                                                //    414        %if buff_pa # disp %start
#line 414 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->PA) == (DISP))) goto L_001c;
                                                                //    415           buff_lrp = buff_bp
#line 415 "regression-compile-tmp/vax-pass3.imp"
BUFF->LRP = BUFF->BP;
                                                                //    416           stpb (buff, disp)
#line 416 "regression-compile-tmp/vax-pass3.imp"
STPB(BUFF, DISP);
                                                                //    417           add (tir setrb)
#line 417 "regression-compile-tmp/vax-pass3.imp"
ADD(80);
                                                                //    418           buff_lr = buff_bp
#line 418 "regression-compile-tmp/vax-pass3.imp"
BUFF->LR = BUFF->BP;
                                                                //    419           buff_pa = disp
#line 419 "regression-compile-tmp/vax-pass3.imp"
BUFF->PA = DISP;
                                                                //    420        %finish
#line 420 "regression-compile-tmp/vax-pass3.imp"
L_001c:;
                                                                //    421     %end
#line 421 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SELECT at level 2
                                                                //    422  
                                                                //    423     %routine  START IMMED (%integer max)
#line 423 "regression-compile-tmp/vax-pass3.imp"
void STARTIMMED( int MAX )
#line 423 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    424        %return %if buff_dump = 0
#line 424 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_001d;
#line 424 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 424 "regression-compile-tmp/vax-pass3.imp"
L_001d:;
                                                                //    425        error ("buffer in use", 0) %if buff_bs # 0
#line 425 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->BS) == (0))) goto L_001e;
#line 425 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("buffer in use"), 0);
#line 425 "regression-compile-tmp/vax-pass3.imp"
L_001e:;
                                                                //    426        error ("immediate size error", max) %if max > 128
#line 426 "regression-compile-tmp/vax-pass3.imp"
if (((MAX) <= (128))) goto L_001f;
#line 426 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("immediate size error"), MAX);
#line 426 "regression-compile-tmp/vax-pass3.imp"
L_001f:;
                                                                //    427        need (max+1)
#line 427 "regression-compile-tmp/vax-pass3.imp"
NEED((((int)(MAX)) + (1)));
                                                                //    428        %if buff_be = buff_bp %and
#line 428 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->BE) != (BUFF->BP))) goto L_0020;
#line 428 "regression-compile-tmp/vax-pass3.imp"
if (((((MAX) + ((int)((((int)(BUFF->BP)) - (BUFF->LBS)))))) > (128))) goto L_0020;
                                                                //    429            max + (buff_bp - buff_lbs) <= 128 %start
                                                                //    430           ! Can concatenate buffers
                                                                //    431           buff_bs = buff_lbs
#line 431 "regression-compile-tmp/vax-pass3.imp"
BUFF->BS = BUFF->LBS;
                                                                //    432        %else
#line 432 "regression-compile-tmp/vax-pass3.imp"
goto L_0021;
#line 432 "regression-compile-tmp/vax-pass3.imp"
L_0020:;
                                                                //    433           add (0);                            ! Length byte
#line 433 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //    434           buff_bs = buff_bp
#line 434 "regression-compile-tmp/vax-pass3.imp"
BUFF->BS = BUFF->BP;
                                                                //    435        %finish
#line 435 "regression-compile-tmp/vax-pass3.imp"
L_0021:;
                                                                //    436        buff_bb = buff_bp;                     ! Where this block started
#line 436 "regression-compile-tmp/vax-pass3.imp"
BUFF->BB = BUFF->BP;
                                                                //    437     %end
#line 437 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STARTIMMED at level 2
                                                                //    438  
                                                                //    439     %routine  END IMMED
#line 439 "regression-compile-tmp/vax-pass3.imp"
void ENDIMMED( void )
#line 439 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    440        %integer  size
#line 440 "regression-compile-tmp/vax-pass3.imp"
int SIZE;
                                                                //    441        %return %if buff_dump = 0
#line 441 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->DUMP) != (0))) goto L_0022;
#line 441 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 441 "regression-compile-tmp/vax-pass3.imp"
L_0022:;
                                                                //    442        error ("buffer not in use", 0) %if buff_bs = 0
#line 442 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->BS) != (0))) goto L_0023;
#line 442 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("buffer not in use"), 0);
#line 442 "regression-compile-tmp/vax-pass3.imp"
L_0023:;
                                                                //    443        size = buff_bp - buff_bs
#line 443 "regression-compile-tmp/vax-pass3.imp"
SIZE = (((int)(BUFF->BP)) - (BUFF->BS));
                                                                //    444        %if size # 0 %start
#line 444 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) == (0))) goto L_0024;
                                                                //    445           error ("buffer overflow", size) %if size > 128
#line 445 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) <= (128))) goto L_0025;
#line 445 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("buffer overflow"), SIZE);
#line 445 "regression-compile-tmp/vax-pass3.imp"
L_0025:;
                                                                //    446           buff_b(buff_bs) = -size
#line 446 "regression-compile-tmp/vax-pass3.imp"
BUFF->B[(((int)(BUFF->BS)) - (1))] = (-(SIZE));
                                                                //    447           buff_lbs = buff_bs
#line 447 "regression-compile-tmp/vax-pass3.imp"
BUFF->LBS = BUFF->BS;
                                                                //    448           buff_be = buff_bp
#line 448 "regression-compile-tmp/vax-pass3.imp"
BUFF->BE = BUFF->BP;
                                                                //    449        %else
#line 449 "regression-compile-tmp/vax-pass3.imp"
goto L_0026;
#line 449 "regression-compile-tmp/vax-pass3.imp"
L_0024:;
                                                                //    450           buff_bp = buff_bp - 1
#line 450 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) - (1));
                                                                //    451        %finish
#line 451 "regression-compile-tmp/vax-pass3.imp"
L_0026:;
                                                                //    452        buff_pa = buff_pa + buff_bp - buff_bb; ! Update psect disp.
#line 452 "regression-compile-tmp/vax-pass3.imp"
BUFF->PA = (((int)((((int)(BUFF->PA)) + (BUFF->BP)))) - (BUFF->BB));
                                                                //    453        error ("Psect immediate overflow", 0) %if buff_pa > buff_max
#line 453 "regression-compile-tmp/vax-pass3.imp"
if (((BUFF->PA) <= (BUFF->MAX))) goto L_0027;
#line 453 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("Psect immediate overflow"), 0);
#line 453 "regression-compile-tmp/vax-pass3.imp"
L_0027:;
                                                                //    454        buff_bs = 0;                           ! Not buffering now
#line 454 "regression-compile-tmp/vax-pass3.imp"
BUFF->BS = 0;
                                                                //    455     %end
#line 455 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block ENDIMMED at level 2
                                                                //    456  
                                                                //    457     %routine  SPEC (%integer flags, data, value, mask)
#line 457 "regression-compile-tmp/vax-pass3.imp"
void SPEC( int FLAGS, int DATA, int VALUE, int MASK )
#line 457 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    458        %integer  def, len, psect
#line 458 "regression-compile-tmp/vax-pass3.imp"
int DEF;
#line 458 "regression-compile-tmp/vax-pass3.imp"
int LEN;
#line 458 "regression-compile-tmp/vax-pass3.imp"
int PSECT;
                                                                //    459        psect = |data|
#line 459 "regression-compile-tmp/vax-pass3.imp"
PSECT = _imp_IMOD(DATA);
                                                                //    460        data = 0 %if data < 0;                  ! no '_' for ext data def
#line 460 "regression-compile-tmp/vax-pass3.imp"
if (((DATA) >= (0))) goto L_0028;
#line 460 "regression-compile-tmp/vax-pass3.imp"
DATA = 0;
#line 460 "regression-compile-tmp/vax-pass3.imp"
L_0028:;
                                                                //    461        def = flags&2
#line 461 "regression-compile-tmp/vax-pass3.imp"
DEF = ((FLAGS) & (2));
                                                                //    462        len = (1+1)+(data+length(text))
#line 462 "regression-compile-tmp/vax-pass3.imp"
LEN = ((2) + ((unsigned char)(((DATA) + (*(int *)(_imp_LENGTH(&TEXT)))))));
                                                                //    463        len = len + 7 %if def # 0
#line 463 "regression-compile-tmp/vax-pass3.imp"
if (((DEF) == (0))) goto L_0029;
#line 463 "regression-compile-tmp/vax-pass3.imp"
LEN = (((int)(LEN)) + (7));
#line 463 "regression-compile-tmp/vax-pass3.imp"
L_0029:;
                                                                //    464        set work (obj gsd)
#line 464 "regression-compile-tmp/vax-pass3.imp"
SETWORK(1);
                                                                //    465        %if def = 0 %start
#line 465 "regression-compile-tmp/vax-pass3.imp"
if (((DEF) != (0))) goto L_002a;
                                                                //    466           add (gsd sym)
#line 466 "regression-compile-tmp/vax-pass3.imp"
ADD(1);
                                                                //    467        %else
#line 467 "regression-compile-tmp/vax-pass3.imp"
goto L_002b;
#line 467 "regression-compile-tmp/vax-pass3.imp"
L_002a:;
                                                                //    468           add (gsd epm)
#line 468 "regression-compile-tmp/vax-pass3.imp"
ADD(2);
                                                                //    469        %finish
#line 469 "regression-compile-tmp/vax-pass3.imp"
L_002b:;
                                                                //    470        add (0);                               ! data type - unknown
#line 470 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //    471        addw (flags);                          ! symbol flags
#line 471 "regression-compile-tmp/vax-pass3.imp"
ADDW(FLAGS);
                                                                //    472        %if def # 0 %start;                    ! definition
#line 472 "regression-compile-tmp/vax-pass3.imp"
if (((DEF) == (0))) goto L_002c;
                                                                //    473           add (psect)
#line 473 "regression-compile-tmp/vax-pass3.imp"
ADD(PSECT);
                                                                //    474           addl (value)
#line 474 "regression-compile-tmp/vax-pass3.imp"
ADDL(VALUE);
                                                                //    475           addw (mask)
#line 475 "regression-compile-tmp/vax-pass3.imp"
ADDW(MASK);
                                                                //    476        %finish
#line 476 "regression-compile-tmp/vax-pass3.imp"
L_002c:;
                                                                //    477        add text (data)
#line 477 "regression-compile-tmp/vax-pass3.imp"
ADDTEXT(DATA);
                                                                //    478     %end
#line 478 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SPEC at level 2
                                                                //    479  
                                                                //    480     %routine  INPUT DIRECTIVES
#line 480 "regression-compile-tmp/vax-pass3.imp"
void INPUTDIRECTIVES( void )
#line 480 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    481        %switch  d (1 : last dir code)
#line 481 "regression-compile-tmp/vax-pass3.imp"
static int sw1_D_idx;
static const void * /*SWITCH*/ sw1_D[10] = { &&sw1_D_1, &&sw1_D_2, &&sw1_D_3, &&sw1_D_4, &&sw1_D_5, &&sw1_D_6, &&sw1_D_7, &&sw1_D_8, &&sw1_D_9, &&sw1_D_10,  };
                                                                //    482        %short  first = 0, list = 0
#line 482 "regression-compile-tmp/vax-pass3.imp"
short FIRST;
#line 482 "regression-compile-tmp/vax-pass3.imp"
FIRST = 0;
#line 482 "regression-compile-tmp/vax-pass3.imp"
short LIST;
#line 482 "regression-compile-tmp/vax-pass3.imp"
LIST = 0;
                                                                //    483        %short %name  ref list == first, end
#line 483 "regression-compile-tmp/vax-pass3.imp"
short /*name*/*REFLIST;
#line 483 "regression-compile-tmp/vax-pass3.imp"
REFLIST = &FIRST;
#line 483 "regression-compile-tmp/vax-pass3.imp"
short /*name*/*END;
                                                                //    484        %record(proc fm) %name  proc
#line 484 "regression-compile-tmp/vax-pass3.imp"
 PROCFM /*name*/*PROC;
                                                                //    485        %record(ref fm)  %name  r
#line 485 "regression-compile-tmp/vax-pass3.imp"
 REFFM /*name*/*R;
                                                                //    486        %record(def fm)  %name  t
#line 486 "regression-compile-tmp/vax-pass3.imp"
 DEFFM /*name*/*T;
                                                                //    487        %integer %name  q
#line 487 "regression-compile-tmp/vax-pass3.imp"
int /*name*/*Q;
                                                                //    488        %integer  proc head, n, frame, ldiag
#line 488 "regression-compile-tmp/vax-pass3.imp"
int PROCHEAD;
#line 488 "regression-compile-tmp/vax-pass3.imp"
int N;
#line 488 "regression-compile-tmp/vax-pass3.imp"
int FRAME;
#line 488 "regression-compile-tmp/vax-pass3.imp"
int LDIAG;
                                                                //    489        %integer  ecode, unass code, size
#line 489 "regression-compile-tmp/vax-pass3.imp"
int ECODE;
#line 489 "regression-compile-tmp/vax-pass3.imp"
int UNASSCODE;
#line 489 "regression-compile-tmp/vax-pass3.imp"
int SIZE;
                                                                //    490        %integer  rp, tag, block tag, dcode
#line 490 "regression-compile-tmp/vax-pass3.imp"
int RP;
#line 490 "regression-compile-tmp/vax-pass3.imp"
int TAG;
#line 490 "regression-compile-tmp/vax-pass3.imp"
int BLOCKTAG;
#line 490 "regression-compile-tmp/vax-pass3.imp"
int DCODE;
                                                                //    491        %own %integer  dap = 0, lap = 2
#line 491 "regression-compile-tmp/vax-pass3.imp"
static int DAP = 0;
#line 491 "regression-compile-tmp/vax-pass3.imp"
static int LAP = 2;
                                                                //    492  
                                                                //    493        procs = procs + 1
#line 493 "regression-compile-tmp/vax-pass3.imp"
PROCS = (((int)(PROCS)) + (1));
                                                                //    494        proc == proc tab(procs)
#line 494 "regression-compile-tmp/vax-pass3.imp"
PROC = &PROCTAB[(((int)(PROCS)) - (1))];
                                                                //    495        proc_diag ep = 0
#line 495 "regression-compile-tmp/vax-pass3.imp"
PROC->DIAGEP = 0;
                                                                //    496        proc_line ep = 0
#line 496 "regression-compile-tmp/vax-pass3.imp"
PROC->LINEEP = 0;
                                                                //    497  
                                                                //    498        %cycle
#line 498 "regression-compile-tmp/vax-pass3.imp"
L_002d:;
                                                                //    499           get (dcode)
#line 499 "regression-compile-tmp/vax-pass3.imp"
GET(&DCODE);
                                                                //    500           -> d(dcode) %if 1 <= dcode <= last dir code
#line 500 "regression-compile-tmp/vax-pass3.imp"
if ((((1) > (DCODE))) || (((DCODE) > (10)))) goto L_0030;
#line 500 "regression-compile-tmp/vax-pass3.imp"
sw1_D_idx = DCODE; if ((1 <= sw1_D_idx) && (sw1_D_idx <= 10)) goto *(sw1_D-1)[sw1_D_idx];  /* Bounds=1:10 */ else {
   /*_imp_signal(8, 2, sw1_D_idx);*/
   fprintf(stderr, "%%SWITCH index D(%d) not in range 1:10 at %s:%d\n",
           sw1_D_idx, (_imp_current_file != 0 ? _imp_current_file : __FILE__),
           (_imp_current_line != 0 ? _imp_current_line : __LINE__));
           exit(1);
}
#line 500 "regression-compile-tmp/vax-pass3.imp"
L_0030:;
                                                                //    501           error ("spurious directive", dcode)
#line 501 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("spurious directive"), DCODE);
                                                                //    502  
                                                                //    503     d(dir used):
#line 503 "regression-compile-tmp/vax-pass3.imp"
sw1_D_1:;
                                                                //    504           ext used(getword) = non zero
#line 504 "regression-compile-tmp/vax-pass3.imp"
EXTUSED[(((int)(GETWORD())) - (1))] = 1;
                                                                //    505           %continue
#line 505 "regression-compile-tmp/vax-pass3.imp"
goto L_002f;
                                                                //    506  
                                                                //    507     d(dir ldef):
#line 507 "regression-compile-tmp/vax-pass3.imp"
sw1_D_2:;
                                                                //    508           tag = getword
#line 508 "regression-compile-tmp/vax-pass3.imp"
TAG = GETWORD();
                                                                //    509           error ("too many labels", tag) %unless 0 < tag <= max tag
#line 509 "regression-compile-tmp/vax-pass3.imp"
if ((((0) >= (TAG))) || (((TAG) <= (4000)))) goto L_0032;
#line 509 "regression-compile-tmp/vax-pass3.imp"
L_0031:;
#line 509 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("too many labels"), TAG);
#line 509 "regression-compile-tmp/vax-pass3.imp"
L_0032:;
                                                                //    510           t == def(tag)
#line 510 "regression-compile-tmp/vax-pass3.imp"
T = &DEF[TAG];
                                                                //    511           t_ca = getlong;    ! ca
#line 511 "regression-compile-tmp/vax-pass3.imp"
T->CA = GETLONG();
                                                                //    512           end == t_link %if list = 0
#line 512 "regression-compile-tmp/vax-pass3.imp"
if (((LIST) != (0))) goto L_0033;
#line 512 "regression-compile-tmp/vax-pass3.imp"
END = &T->LINK;
#line 512 "regression-compile-tmp/vax-pass3.imp"
L_0033:;
                                                                //    513           t_link = list;  list = tag
#line 513 "regression-compile-tmp/vax-pass3.imp"
T->LINK = LIST;
#line 513 "regression-compile-tmp/vax-pass3.imp"
LIST = TAG;
                                                                //    514           %continue
#line 514 "regression-compile-tmp/vax-pass3.imp"
goto L_002f;
                                                                //    515  
                                                                //    516     d(dir pref):
#line 516 "regression-compile-tmp/vax-pass3.imp"
sw1_D_3:;
                                                                //    517     d(dir cref):
#line 517 "regression-compile-tmp/vax-pass3.imp"
sw1_D_4:;
                                                                //    518     d(dir uref):
#line 518 "regression-compile-tmp/vax-pass3.imp"
sw1_D_5:;
                                                                //    519           tag = getword
#line 519 "regression-compile-tmp/vax-pass3.imp"
TAG = GETWORD();
                                                                //    520           error ("too many labels", n) %unless 0 < tag <= max tag
#line 520 "regression-compile-tmp/vax-pass3.imp"
if ((((0) >= (TAG))) || (((TAG) <= (4000)))) goto L_0035;
#line 520 "regression-compile-tmp/vax-pass3.imp"
L_0034:;
#line 520 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("too many labels"), N);
#line 520 "regression-compile-tmp/vax-pass3.imp"
L_0035:;
                                                                //    521           error ("too many references", refs) %if refs = max ref
#line 521 "regression-compile-tmp/vax-pass3.imp"
if (((REFS) != (6000))) goto L_0036;
#line 521 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("too many references"), REFS);
#line 521 "regression-compile-tmp/vax-pass3.imp"
L_0036:;
                                                                //    522           refs = refs + 1;  r == ref(refs)
#line 522 "regression-compile-tmp/vax-pass3.imp"
REFS = (((int)(REFS)) + (1));
#line 522 "regression-compile-tmp/vax-pass3.imp"
R = &REF[(((int)(REFS)) - (1))];
                                                                //    523           r_tag = tag
#line 523 "regression-compile-tmp/vax-pass3.imp"
R->TAG = TAG;
                                                                //    524           r_ca = getlong;                     ! ca
#line 524 "regression-compile-tmp/vax-pass3.imp"
R->CA = GETLONG();
                                                                //    525           r_flag = dcode - 3
#line 525 "regression-compile-tmp/vax-pass3.imp"
R->FLAG = (((int)(DCODE)) - (3));
                                                                //    526           ref list = refs
#line 526 "regression-compile-tmp/vax-pass3.imp"
*REFLIST = REFS;
                                                                //    527           ref list == r_link
#line 527 "regression-compile-tmp/vax-pass3.imp"
REFLIST = &R->LINK;
                                                                //    528           %continue
#line 528 "regression-compile-tmp/vax-pass3.imp"
goto L_002f;
                                                                //    529  
                                                                //    530     d(dir entry): ! define ep
#line 530 "regression-compile-tmp/vax-pass3.imp"
sw1_D_10:;
                                                                //    531           entry tag = getword
#line 531 "regression-compile-tmp/vax-pass3.imp"
ENTRYTAG = GETWORD();
                                                                //    532           %continue
#line 532 "regression-compile-tmp/vax-pass3.imp"
goto L_002f;
                                                                //    533  
                                                                //    534     d(dir header):
#line 534 "regression-compile-tmp/vax-pass3.imp"
sw1_D_9:;
                                                                //    535           input directives
#line 535 "regression-compile-tmp/vax-pass3.imp"
INPUTDIRECTIVES();
                                                                //    536        %repeat
#line 536 "regression-compile-tmp/vax-pass3.imp"
L_002f:;
#line 536 "regression-compile-tmp/vax-pass3.imp"
goto L_002d;
                                                                //    537  
                                                                //    538     d(dir end):
#line 538 "regression-compile-tmp/vax-pass3.imp"
sw1_D_6:;
                                                                //    539        proc_type = getlong
#line 539 "regression-compile-tmp/vax-pass3.imp"
PROC->TYPE = GETLONG();
                                                                //    540        proc_mask = getword&16_CFFC
#line 540 "regression-compile-tmp/vax-pass3.imp"
PROC->MASK = ((GETWORD()) & (53244));
                                                                //    541        frame = -getlong
#line 541 "regression-compile-tmp/vax-pass3.imp"
FRAME = (-(GETLONG()));
                                                                //    542        proc_frame = frame;               ! frame size
#line 542 "regression-compile-tmp/vax-pass3.imp"
PROC->FRAME = FRAME;
                                                                //    543        ldiag = getword
#line 543 "regression-compile-tmp/vax-pass3.imp"
LDIAG = GETWORD();
                                                                //    544        proc_diag = ldiag
#line 544 "regression-compile-tmp/vax-pass3.imp"
PROC->DIAG = LDIAG;
                                                                //    545        error ("corrupt diags", diags) %if ldiag = 0 %and diags # 0
#line 545 "regression-compile-tmp/vax-pass3.imp"
if (((LDIAG) != (0))) goto L_002e;
#line 545 "regression-compile-tmp/vax-pass3.imp"
if (((DIAGS) == (0))) goto L_002e;
#line 545 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("corrupt diags"), DIAGS);
#line 545 "regression-compile-tmp/vax-pass3.imp"
L_002e:;
                                                                //    546        proc_diag ep = dap;  dap = dap + ldiag
#line 546 "regression-compile-tmp/vax-pass3.imp"
PROC->DIAGEP = DAP;
#line 546 "regression-compile-tmp/vax-pass3.imp"
DAP = (((int)(DAP)) + (LDIAG));
                                                                //    547        proc_line ep = lap;  lap = lap + getword
#line 547 "regression-compile-tmp/vax-pass3.imp"
PROC->LINEEP = LAP;
#line 547 "regression-compile-tmp/vax-pass3.imp"
LAP = (((int)(LAP)) + (GETWORD()));
                                                                //    548        block tag = getword
#line 548 "regression-compile-tmp/vax-pass3.imp"
BLOCKTAG = GETWORD();
                                                                //    549        ! compute length of entry code sequence
                                                                //    550        ecode = 2;                             ! for entry mask
#line 550 "regression-compile-tmp/vax-pass3.imp"
ECODE = 2;
                                                                //    551        %if block tag = entry tag %and init # 0 %start
#line 551 "regression-compile-tmp/vax-pass3.imp"
if (((BLOCKTAG) != (ENTRYTAG))) goto L_0037;
#line 551 "regression-compile-tmp/vax-pass3.imp"
if (((INIT) == (0))) goto L_0037;
                                                                //    552           ecode = ecode + 7;                  ! calls #0,l^init proc
#line 552 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (7));
                                                                //    553        %finish
#line 553 "regression-compile-tmp/vax-pass3.imp"
L_0037:;
                                                                //    554        %if proc_type # 0 %start
#line 554 "regression-compile-tmp/vax-pass3.imp"
if (((PROC->TYPE) == (0))) goto L_0038;
                                                                //    555           ecode = ecode + 7;                  ! moval l^ep_,gla
#line 555 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (7));
                                                                //    556        %finish
#line 556 "regression-compile-tmp/vax-pass3.imp"
L_0038:;
                                                                //    557        ecode = ecode + 3;                     ! movl fp, base
#line 557 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (3));
                                                                //    558        %if frame # 0 %start
#line 558 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) == (0))) goto L_0039;
                                                                //    559           ! locals - needs frame + unass code
                                                                //    560           unass code = 8;                     ! movc5 #0,(fp),(gla),s^#f,(sp)
#line 560 "regression-compile-tmp/vax-pass3.imp"
UNASSCODE = 8;
                                                                //    561           %if frame <= 63 %start
#line 561 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) > (63))) goto L_003a;
                                                                //    562              !short lit - byte's worth
                                                                //    563              ecode = ecode + 3;               ! subl2 i^#f, sp
#line 563 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (3));
                                                                //    564              unass code = 6;                  ! movc5 #0,(fp),(gla),i^#f,(sp)
#line 564 "regression-compile-tmp/vax-pass3.imp"
UNASSCODE = 6;
                                                                //    565           %else %if frame <= 16_7fff
#line 565 "regression-compile-tmp/vax-pass3.imp"
goto L_003b;
#line 565 "regression-compile-tmp/vax-pass3.imp"
L_003a:;
#line 565 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) > (32767))) goto L_003c;
                                                                //    566              !word's worth (sheer poetry)
                                                                //    567              ecode = ecode + 5;               ! moval w^-f(sp), sp
#line 567 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (5));
                                                                //    568           %else
#line 568 "regression-compile-tmp/vax-pass3.imp"
goto L_003b;
#line 568 "regression-compile-tmp/vax-pass3.imp"
L_003c:;
                                                                //    569              ecode = ecode + 7;               ! subl2 s^#f, sp
#line 569 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (7));
                                                                //    570           %finish
#line 570 "regression-compile-tmp/vax-pass3.imp"
L_003b:;
                                                                //    571           %if check ass # 0 %start
#line 571 "regression-compile-tmp/vax-pass3.imp"
if (((CHECKASS) == (0))) goto L_003d;
                                                                //    572              ecode = ecode + unass code
#line 572 "regression-compile-tmp/vax-pass3.imp"
ECODE = (((int)(ECODE)) + (UNASSCODE));
                                                                //    573              proc_mask = proc_mask ! 16_003C; ! r0-r5 corrupted by MOVC5!!!
#line 573 "regression-compile-tmp/vax-pass3.imp"
PROC->MASK = ((PROC->MASK) | (60));
                                                                //    574           %finish
#line 574 "regression-compile-tmp/vax-pass3.imp"
L_003d:;
                                                                //    575        %finish
#line 575 "regression-compile-tmp/vax-pass3.imp"
L_0039:;
                                                                //    576        t == def(block tag)
#line 576 "regression-compile-tmp/vax-pass3.imp"
T = &DEF[BLOCKTAG];
                                                                //    577        t_ca = t_ca - ecode
#line 577 "regression-compile-tmp/vax-pass3.imp"
T->CA = (((int)(T->CA)) - (ECODE));
                                                                //    578        base = base + ecode
#line 578 "regression-compile-tmp/vax-pass3.imp"
BASE = (((int)(BASE)) + (ECODE));
                                                                //    579  
                                                                //    580     d(dir xend):  ! end of external proc
#line 580 "regression-compile-tmp/vax-pass3.imp"
sw1_D_8:;
                                                                //    581  
                                                                //    582        tag = list
#line 582 "regression-compile-tmp/vax-pass3.imp"
TAG = LIST;
                                                                //    583        %while tag # 0 %cycle
#line 583 "regression-compile-tmp/vax-pass3.imp"
L_003e:;
#line 583 "regression-compile-tmp/vax-pass3.imp"
if (((TAG) == (0))) goto L_003f;
                                                                //    584           t == def(tag)
#line 584 "regression-compile-tmp/vax-pass3.imp"
T = &DEF[TAG];
                                                                //    585           t_ca = t_ca + base
#line 585 "regression-compile-tmp/vax-pass3.imp"
T->CA = (((int)(T->CA)) + (BASE));
                                                                //    586           tag = t_link
#line 586 "regression-compile-tmp/vax-pass3.imp"
TAG = T->LINK;
                                                                //    587        %repeat
#line 587 "regression-compile-tmp/vax-pass3.imp"
goto L_003e;
#line 587 "regression-compile-tmp/vax-pass3.imp"
L_003f:;
                                                                //    588        %if list # 0 %start;                   ! add labels to def list
#line 588 "regression-compile-tmp/vax-pass3.imp"
if (((LIST) == (0))) goto L_0041;
                                                                //    589           end = def list
#line 589 "regression-compile-tmp/vax-pass3.imp"
*END = DEFLIST;
                                                                //    590           def list = list
#line 590 "regression-compile-tmp/vax-pass3.imp"
DEFLIST = LIST;
                                                                //    591        %finish
#line 591 "regression-compile-tmp/vax-pass3.imp"
L_0041:;
                                                                //    592        ref list = 0;                          ! mark the end
#line 592 "regression-compile-tmp/vax-pass3.imp"
*REFLIST = 0;
                                                                //    593        rp = first
#line 593 "regression-compile-tmp/vax-pass3.imp"
RP = FIRST;
                                                                //    594        %while rp # 0 %cycle
#line 594 "regression-compile-tmp/vax-pass3.imp"
L_0042:;
#line 594 "regression-compile-tmp/vax-pass3.imp"
if (((RP) == (0))) goto L_0043;
                                                                //    595           r == ref(rp)
#line 595 "regression-compile-tmp/vax-pass3.imp"
R = &REF[(((int)(RP)) - (1))];
                                                                //    596           r_ca = r_ca + base
#line 596 "regression-compile-tmp/vax-pass3.imp"
R->CA = (((int)(R->CA)) + (BASE));
                                                                //    597           rp = r_link
#line 597 "regression-compile-tmp/vax-pass3.imp"
RP = R->LINK;
                                                                //    598        %repeat
#line 598 "regression-compile-tmp/vax-pass3.imp"
goto L_0042;
#line 598 "regression-compile-tmp/vax-pass3.imp"
L_0043:;
                                                                //    599        size = getlong;                        ! total size
#line 599 "regression-compile-tmp/vax-pass3.imp"
SIZE = GETLONG();
                                                                //    600        base = base + size
#line 600 "regression-compile-tmp/vax-pass3.imp"
BASE = (((int)(BASE)) + (SIZE));
                                                                //    601        %if first # 0 %start
#line 601 "regression-compile-tmp/vax-pass3.imp"
if (((FIRST) == (0))) goto L_0045;
                                                                //    602           ref chain = first
#line 602 "regression-compile-tmp/vax-pass3.imp"
*REFCHAIN = FIRST;
                                                                //    603           ref chain == ref list
#line 603 "regression-compile-tmp/vax-pass3.imp"
REFCHAIN = REFLIST;
                                                                //    604           ref chain = 0
#line 604 "regression-compile-tmp/vax-pass3.imp"
*REFCHAIN = 0;
                                                                //    605        %finish
#line 605 "regression-compile-tmp/vax-pass3.imp"
L_0045:;
                                                                //    606        %return
#line 606 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
                                                                //    607  
                                                                //    608     d(dir sizes):   ! end of directives, totals follow
#line 608 "regression-compile-tmp/vax-pass3.imp"
sw1_D_7:;
                                                                //    609        glap size  = getlong
#line 609 "regression-compile-tmp/vax-pass3.imp"
GLAPSIZE = GETLONG();
                                                                //    610        last tag   = getword
#line 610 "regression-compile-tmp/vax-pass3.imp"
LASTTAG = GETWORD();
                                                                //    611        specs      = getword
#line 611 "regression-compile-tmp/vax-pass3.imp"
SPECS = GETWORD();
                                                                //    612        diag size  = getword
#line 612 "regression-compile-tmp/vax-pass3.imp"
DIAGSIZE = GETWORD();
                                                                //    613        events     = getword
#line 613 "regression-compile-tmp/vax-pass3.imp"
EVENTS = GETWORD();
                                                                //    614        proc tab(1)_diag ep = dap
#line 614 "regression-compile-tmp/vax-pass3.imp"
PROCTAB[0].DIAGEP = DAP;
                                                                //    615        line size  = lap
#line 615 "regression-compile-tmp/vax-pass3.imp"
LINESIZE = LAP;
                                                                //    616     %end
#line 616 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INPUTDIRECTIVES at level 2
                                                                //    617  
                                                                //    618     %routine  STRETCH JUMPS
#line 618 "regression-compile-tmp/vax-pass3.imp"
void STRETCHJUMPS( void )
#line 618 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    619        %integer  extra, here, there, disp, mod, tag
#line 619 "regression-compile-tmp/vax-pass3.imp"
int EXTRA;
#line 619 "regression-compile-tmp/vax-pass3.imp"
int HERE;
#line 619 "regression-compile-tmp/vax-pass3.imp"
int THERE;
#line 619 "regression-compile-tmp/vax-pass3.imp"
int DISP;
#line 619 "regression-compile-tmp/vax-pass3.imp"
int MOD;
#line 619 "regression-compile-tmp/vax-pass3.imp"
int TAG;
                                                                //    620        %integer %name  pt
#line 620 "regression-compile-tmp/vax-pass3.imp"
int /*name*/*PT;
                                                                //    621        %short %name  last, next
#line 621 "regression-compile-tmp/vax-pass3.imp"
short /*name*/*LAST;
#line 621 "regression-compile-tmp/vax-pass3.imp"
short /*name*/*NEXT;
                                                                //    622        %record(ref fm) %name  r
#line 622 "regression-compile-tmp/vax-pass3.imp"
 REFFM /*name*/*R;
                                                                //    623        %record(def fm) %name  t
#line 623 "regression-compile-tmp/vax-pass3.imp"
 DEFFM /*name*/*T;
                                                                //    624        %cycle
#line 624 "regression-compile-tmp/vax-pass3.imp"
L_0046:;
                                                                //    625           extra = 0
#line 625 "regression-compile-tmp/vax-pass3.imp"
EXTRA = 0;
                                                                //    626           last == ref head
#line 626 "regression-compile-tmp/vax-pass3.imp"
LAST = &REFHEAD;
                                                                //    627           %while last # 0 %cycle
#line 627 "regression-compile-tmp/vax-pass3.imp"
L_0049:;
#line 627 "regression-compile-tmp/vax-pass3.imp"
if (((*LAST) == (0))) goto L_004a;
                                                                //    628              r == ref(last)
#line 628 "regression-compile-tmp/vax-pass3.imp"
R = &REF[((*(int *)(LAST)) - (1))];
                                                                //    629              next == r_link
#line 629 "regression-compile-tmp/vax-pass3.imp"
NEXT = &R->LINK;
                                                                //    630              r_ca = r_ca + extra
#line 630 "regression-compile-tmp/vax-pass3.imp"
R->CA = (((int)(R->CA)) + (EXTRA));
                                                                //    631              here = r_ca + 2
#line 631 "regression-compile-tmp/vax-pass3.imp"
HERE = (((int)(R->CA)) + (2));
                                                                //    632              there = def(r_tag)_ca
#line 632 "regression-compile-tmp/vax-pass3.imp"
THERE = DEF[R->TAG].CA;
                                                                //    633              disp = there - here
#line 633 "regression-compile-tmp/vax-pass3.imp"
DISP = (((int)(THERE)) - (HERE));
                                                                //    634              mod = 0
#line 634 "regression-compile-tmp/vax-pass3.imp"
MOD = 0;
                                                                //    635              %if r_flag&middling = 0 %and
#line 635 "regression-compile-tmp/vax-pass3.imp"
if (((((R->FLAG) & (4096))) != (0))) goto L_004c;
#line 635 "regression-compile-tmp/vax-pass3.imp"
if (((((-128)) > (DISP))) || (((DISP) <= (127)))) goto L_004c;
#line 635 "regression-compile-tmp/vax-pass3.imp"
L_004d:;
                                                                //    636                  %not -128 <= disp <= 127 %start
                                                                //    637                 r_flag = r_flag!middling
#line 637 "regression-compile-tmp/vax-pass3.imp"
R->FLAG = ((R->FLAG) | (4096));
                                                                //    638  !********               %if safelow <= disp <= safe high %start
                                                                //    639  !********                  ! will not stretch again
                                                                //    640  !********                  last = next
                                                                //    641  !********                  next == last
                                                                //    642  !********               %finish
                                                                //    643                 mod = 1;                      ! 1-byte -> 2-byte disp
#line 643 "regression-compile-tmp/vax-pass3.imp"
MOD = 1;
                                                                //    644                 mod = 3 %if r_flag&1 # 0;     ! conditional -> skip+brw
#line 644 "regression-compile-tmp/vax-pass3.imp"
if (((((R->FLAG) & (1))) == (0))) goto L_004e;
#line 644 "regression-compile-tmp/vax-pass3.imp"
MOD = 3;
#line 644 "regression-compile-tmp/vax-pass3.imp"
L_004e:;
                                                                //    645              %else %unless 16_FFFF8001 <= disp <= 16_8000
#line 645 "regression-compile-tmp/vax-pass3.imp"
goto L_004f;
#line 645 "regression-compile-tmp/vax-pass3.imp"
L_004c:;
#line 645 "regression-compile-tmp/vax-pass3.imp"
if (((((-32767)) > (DISP))) || (((DISP) <= (32768)))) goto L_0051;
#line 645 "regression-compile-tmp/vax-pass3.imp"
L_0050:;
                                                                //    646                 ! cannot get bigger
                                                                //    647                 last = next
#line 647 "regression-compile-tmp/vax-pass3.imp"
*LAST = *NEXT;
                                                                //    648                 next == last
#line 648 "regression-compile-tmp/vax-pass3.imp"
NEXT = LAST;
                                                                //    649                 mod = 2;                      ! word disp -> longword disp
#line 649 "regression-compile-tmp/vax-pass3.imp"
MOD = 2;
                                                                //    650                 mod = 3 %if r_flag&3 # 0;     ! brw -> jmp
#line 650 "regression-compile-tmp/vax-pass3.imp"
if (((((R->FLAG) & (3))) == (0))) goto L_0052;
#line 650 "regression-compile-tmp/vax-pass3.imp"
MOD = 3;
#line 650 "regression-compile-tmp/vax-pass3.imp"
L_0052:;
                                                                //    651              %finish
#line 651 "regression-compile-tmp/vax-pass3.imp"
L_0051:;
#line 651 "regression-compile-tmp/vax-pass3.imp"
L_004f:;
                                                                //    652              %if mod # 0 %start
#line 652 "regression-compile-tmp/vax-pass3.imp"
if (((MOD) == (0))) goto L_0053;
                                                                //    653                 tag = def list
#line 653 "regression-compile-tmp/vax-pass3.imp"
TAG = DEFLIST;
                                                                //    654                 %while tag # 0 %cycle
#line 654 "regression-compile-tmp/vax-pass3.imp"
L_0054:;
#line 654 "regression-compile-tmp/vax-pass3.imp"
if (((TAG) == (0))) goto L_0055;
                                                                //    655                    t == def(tag)
#line 655 "regression-compile-tmp/vax-pass3.imp"
T = &DEF[TAG];
                                                                //    656                    pt == t_ca
#line 656 "regression-compile-tmp/vax-pass3.imp"
PT = &T->CA;
                                                                //    657                    %exit %if pt < here
#line 657 "regression-compile-tmp/vax-pass3.imp"
if (((*PT) >= (HERE))) goto L_0057;
#line 657 "regression-compile-tmp/vax-pass3.imp"
goto L_0055;
#line 657 "regression-compile-tmp/vax-pass3.imp"
L_0057:;
                                                                //    658                    pt = pt + mod
#line 658 "regression-compile-tmp/vax-pass3.imp"
*PT = ((*(int *)(PT)) + (MOD));
                                                                //    659                    tag = t_link
#line 659 "regression-compile-tmp/vax-pass3.imp"
TAG = T->LINK;
                                                                //    660                 %repeat
#line 660 "regression-compile-tmp/vax-pass3.imp"
goto L_0054;
#line 660 "regression-compile-tmp/vax-pass3.imp"
L_0055:;
                                                                //    661                 extra = extra + mod
#line 661 "regression-compile-tmp/vax-pass3.imp"
EXTRA = (((int)(EXTRA)) + (MOD));
                                                                //    662              %finish
#line 662 "regression-compile-tmp/vax-pass3.imp"
L_0053:;
                                                                //    663              last == next
#line 663 "regression-compile-tmp/vax-pass3.imp"
LAST = NEXT;
                                                                //    664           %repeat
#line 664 "regression-compile-tmp/vax-pass3.imp"
goto L_0049;
#line 664 "regression-compile-tmp/vax-pass3.imp"
L_004a:;
                                                                //    665           base = base + extra
#line 665 "regression-compile-tmp/vax-pass3.imp"
BASE = (((int)(BASE)) + (EXTRA));
                                                                //    666        %repeat %until extra = 0
#line 666 "regression-compile-tmp/vax-pass3.imp"
if (((EXTRA) == (0))) goto L_0047;
#line 666 "regression-compile-tmp/vax-pass3.imp"
goto L_0046;
#line 666 "regression-compile-tmp/vax-pass3.imp"
L_0047:;
                                                                //    667        event base = (base+7)&(\7)
#line 667 "regression-compile-tmp/vax-pass3.imp"
EVENTBASE = (((((int)(BASE)) + (7))) & ((~(7))));
                                                                //    668        evp = event base
#line 668 "regression-compile-tmp/vax-pass3.imp"
EVP = EVENTBASE;
                                                                //    669        code size = event base + events*16 + 4
#line 669 "regression-compile-tmp/vax-pass3.imp"
CODESIZE = (((int)(((EVENTBASE) + ((int)((((int)(EVENTS)) * (16))))))) + (4));
                                                                //    670     %end
#line 670 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block STRETCHJUMPS at level 2
                                                                //    671  
                                                                //    672     %routine  DUMP CODE (%integer base, btag, limit)
#line 672 "regression-compile-tmp/vax-pass3.imp"
void DUMPCODE( int BASE, int BTAG, int LIMIT )
#line 672 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    673        %switch  c (1 : last obj code)
#line 673 "regression-compile-tmp/vax-pass3.imp"
static int sw2_C_idx;
static const void * /*SWITCH*/ sw2_C[25] = { &&sw2_C_1, &&sw2_C_2, &&sw2_C_3, &&sw2_C_4, &&sw2_C_5, &&sw2_C_6, &&sw2_C_7, &&sw2_C_8, &&sw2_C_9, &&sw2_C_10, &&sw2_C_11, &&sw2_C_12, &&sw2_C_13, &&sw2_C_14, &&sw2_C_15, &&sw2_C_16, &&sw2_C_17, &&sw2_C_18, &&sw2_C_19, &&sw2_C_20, &&sw2_C_21, &&sw2_C_22, &&sw2_C_23, &&sw2_C_24, &&sw2_C_25,  };
                                                                //    674        %own %byte %array  base mod (5 : 15)
#line 674 "regression-compile-tmp/vax-pass3.imp"
static unsigned char BASEMOD[11];
                                                                //    675        ! Code type enables pre-selection of the appropriate
                                                                //    676        ! output buffer for each command code byte from Pass 2.
                                                                //    677        %const %byte %array  code type (1 : last obj code) =
#line 677 "regression-compile-tmp/vax-pass3.imp"
const unsigned char CODETYPE[25] = { 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0, 1, 0, 0, 0,  };
                                                                //    678           0, 0, 1, 0, 0,
                                                                //    679           1, 1, 1, 1, 0,
                                                                //    680           0, 0, 0, 0, 3,
                                                                //    681           0, 2, 2, 0, 0,
                                                                //    682           0, 1, 0, 0, 0
                                                                //    683        %own %record(psect fm) %name %array  buff for (0 : 3)
#line 683 "regression-compile-tmp/vax-pass3.imp"
static  PSECTFM /*name*/*BUFFFOR[4];
                                                                //    684        %own %integer  called = 0
#line 684 "regression-compile-tmp/vax-pass3.imp"
static int CALLED = 0;
                                                                //    685  
                                                                //    686        %integer  disp, cond
#line 686 "regression-compile-tmp/vax-pass3.imp"
int DISP;
#line 686 "regression-compile-tmp/vax-pass3.imp"
int COND;
                                                                //    687        %integer  ldiag, value
#line 687 "regression-compile-tmp/vax-pass3.imp"
int LDIAG;
#line 687 "regression-compile-tmp/vax-pass3.imp"
int VALUE;
                                                                //    688        %integer  ocode, type
#line 688 "regression-compile-tmp/vax-pass3.imp"
int OCODE;
#line 688 "regression-compile-tmp/vax-pass3.imp"
int TYPE;
                                                                //    689        %integer  gb, gx, cx, xno, pno
#line 689 "regression-compile-tmp/vax-pass3.imp"
int GB;
#line 689 "regression-compile-tmp/vax-pass3.imp"
int GX;
#line 689 "regression-compile-tmp/vax-pass3.imp"
int CX;
#line 689 "regression-compile-tmp/vax-pass3.imp"
int XNO;
#line 689 "regression-compile-tmp/vax-pass3.imp"
int PNO;
                                                                //    690        %integer  old ca, old la, old da
#line 690 "regression-compile-tmp/vax-pass3.imp"
int OLDCA;
#line 690 "regression-compile-tmp/vax-pass3.imp"
int OLDLA;
#line 690 "regression-compile-tmp/vax-pass3.imp"
int OLDDA;
                                                                //    691        %integer  count, size, n, save
#line 691 "regression-compile-tmp/vax-pass3.imp"
int COUNT;
#line 691 "regression-compile-tmp/vax-pass3.imp"
int SIZE;
#line 691 "regression-compile-tmp/vax-pass3.imp"
int N;
#line 691 "regression-compile-tmp/vax-pass3.imp"
int SAVE;
                                                                //    692        %integer  reg, specifier, mode
#line 692 "regression-compile-tmp/vax-pass3.imp"
int REG;
#line 692 "regression-compile-tmp/vax-pass3.imp"
int SPECIFIER;
#line 692 "regression-compile-tmp/vax-pass3.imp"
int MODE;
                                                                //    693        %integer  evlow, evep, evword
#line 693 "regression-compile-tmp/vax-pass3.imp"
int EVLOW;
#line 693 "regression-compile-tmp/vax-pass3.imp"
int EVEP;
#line 693 "regression-compile-tmp/vax-pass3.imp"
int EVWORD;
                                                                //    694        %integer  tag, lim, nbase
#line 694 "regression-compile-tmp/vax-pass3.imp"
int TAG;
#line 694 "regression-compile-tmp/vax-pass3.imp"
int LIM;
#line 694 "regression-compile-tmp/vax-pass3.imp"
int NBASE;
                                                                //    695        %record(proc fm) %name  proc
#line 695 "regression-compile-tmp/vax-pass3.imp"
 PROCFM /*name*/*PROC;
                                                                //    696  
                                                                //    697        %routine  DUMP LINE
#line 697 "regression-compile-tmp/vax-pass3.imp"
void DUMPLINE( void )
#line 697 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    698           buff == linep
#line 698 "regression-compile-tmp/vax-pass3.imp"
BUFF = &LINEP;
                                                                //    699           start immed (6)
#line 699 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(6);
                                                                //    700           addl (ca);  addw (this line)
#line 700 "regression-compile-tmp/vax-pass3.imp"
ADDL(*CA);
#line 700 "regression-compile-tmp/vax-pass3.imp"
ADDW(THISLINE);
                                                                //    701           end immed
#line 701 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    702        %end
#line 702 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DUMPLINE at level 3
                                                                //    703  
                                                                //    704        %routine  LOAD BLOCK
#line 704 "regression-compile-tmp/vax-pass3.imp"
void LOADBLOCK( void )
#line 704 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    705           %integer  n
#line 705 "regression-compile-tmp/vax-pass3.imp"
int N;
                                                                //    706           get (n);  start immed (n)
#line 706 "regression-compile-tmp/vax-pass3.imp"
GET(&N);
#line 706 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(N);
                                                                //    707           get block (n, buff_b(buff_bp+1))
#line 707 "regression-compile-tmp/vax-pass3.imp"
GETBLOCK(N, &BUFF->B[(((int)((((int)(BUFF->BP)) + (1)))) - (1))]);
                                                                //    708           buff_bp = buff_bp + n
#line 708 "regression-compile-tmp/vax-pass3.imp"
BUFF->BP = (((int)(BUFF->BP)) + (N));
                                                                //    709           end immed
#line 709 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    710        %end
#line 710 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block LOADBLOCK at level 3
                                                                //    711  
                                                                //    712        %routine  SET PRIM TEXT (%integer  pno)
#line 712 "regression-compile-tmp/vax-pass3.imp"
void SETPRIMTEXT( int PNO )
#line 712 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    713           text = "$_"
#line 713 "regression-compile-tmp/vax-pass3.imp"
TEXT = _imp_str_literal("$_");
                                                                //    714           text = text . "_" %and pno = pno - 26 %while pno > 26
#line 714 "regression-compile-tmp/vax-pass3.imp"
L_0058:;
#line 714 "regression-compile-tmp/vax-pass3.imp"
if (((PNO) <= (26))) goto L_0059;
#line 714 "regression-compile-tmp/vax-pass3.imp"
TEXT = _imp_join((_imp_string)TEXT,(_imp_string)_imp_str_literal("_"));
#line 714 "regression-compile-tmp/vax-pass3.imp"
PNO = (((int)(PNO)) - (26));
#line 714 "regression-compile-tmp/vax-pass3.imp"
goto L_0058;
#line 714 "regression-compile-tmp/vax-pass3.imp"
L_0059:;
                                                                //    715           text = text . tostring ('A'-1+pno)
#line 715 "regression-compile-tmp/vax-pass3.imp"
TEXT = _imp_join((_imp_string)TEXT,(_imp_string)_imp_TOSTRING((((int)(64)) + (PNO))));
                                                                //    716        %end
#line 716 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SETPRIMTEXT at level 3
                                                                //    717  
                                                                //    718        %routine  PLUG GLAP (%record(psect fm) %name with,
#line 718 "regression-compile-tmp/vax-pass3.imp"
void PLUGGLAP(  PSECTFM /*name*/*WITH, int WITHDISP, int WHERE, int INST )
#line 718 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    719                             %integer with disp, where, inst)
                                                                //    720           %integer  old ga = ga
#line 720 "regression-compile-tmp/vax-pass3.imp"
int OLDGA;
#line 720 "regression-compile-tmp/vax-pass3.imp"
OLDGA = *GA;
                                                                //    721           %unless 0 < where < glap size %start
#line 721 "regression-compile-tmp/vax-pass3.imp"
if ((((0) >= (WHERE))) || (((WHERE) < (GLAPSIZE)))) goto L_005b;
#line 721 "regression-compile-tmp/vax-pass3.imp"
L_005a:;
                                                                //    722              error ("faulty glap relocation", where)
#line 722 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("faulty glap relocation"), WHERE);
                                                                //    723           %finish
#line 723 "regression-compile-tmp/vax-pass3.imp"
L_005b:;
                                                                //    724           buff == glapp;  select (where)
#line 724 "regression-compile-tmp/vax-pass3.imp"
BUFF = &GLAPP;
#line 724 "regression-compile-tmp/vax-pass3.imp"
SELECT(WHERE);
                                                                //    725           need (7);                   ! Must have following in one record..
#line 725 "regression-compile-tmp/vax-pass3.imp"
NEED(7);
                                                                //    726           stpb (with, with disp)
#line 726 "regression-compile-tmp/vax-pass3.imp"
STPB(WITH, WITHDISP);
                                                                //    727           add (inst)
#line 727 "regression-compile-tmp/vax-pass3.imp"
ADD(INST);
                                                                //    728           select (old ga)
#line 728 "regression-compile-tmp/vax-pass3.imp"
SELECT(OLDGA);
                                                                //    729        %end
#line 729 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PLUGGLAP at level 3
                                                                //    730  
                                                                //    731        %routine  BSEL (%integername old, %record(psect fm) %name p,
#line 731 "regression-compile-tmp/vax-pass3.imp"
void BSEL( int /*name*/*OLD,  PSECTFM /*name*/*P, int NEW )
#line 731 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    732                        %integer  new)
                                                                //    733           buff == p
#line 733 "regression-compile-tmp/vax-pass3.imp"
BUFF = P;
                                                                //    734           old = p_pa
#line 734 "regression-compile-tmp/vax-pass3.imp"
*OLD = P->PA;
                                                                //    735           select (new)
#line 735 "regression-compile-tmp/vax-pass3.imp"
SELECT(NEW);
                                                                //    736        %end
#line 736 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block BSEL at level 3
                                                                //    737  
                                                                //    738        %routine  INITIALISE BUFFERS
#line 738 "regression-compile-tmp/vax-pass3.imp"
void INITIALISEBUFFERS( void )
#line 738 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    739           buff for(0) == codep
#line 739 "regression-compile-tmp/vax-pass3.imp"
BUFFFOR[0] = &CODEP;
                                                                //    740           buff for(1) == glapp
#line 740 "regression-compile-tmp/vax-pass3.imp"
BUFFFOR[1] = &GLAPP;
                                                                //    741           buff for(2) == diagp
#line 741 "regression-compile-tmp/vax-pass3.imp"
BUFFFOR[2] = &DIAGP;
                                                                //    742           buff for(3) == linep
#line 742 "regression-compile-tmp/vax-pass3.imp"
BUFFFOR[3] = &LINEP;
                                                                //    743           called = non zero
#line 743 "regression-compile-tmp/vax-pass3.imp"
CALLED = 1;
                                                                //    744        %end
#line 744 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INITIALISEBUFFERS at level 3
                                                                //    745  
                                                                //    746        %routine  HANDLE BLOCK ENTRY
#line 746 "regression-compile-tmp/vax-pass3.imp"
void HANDLEBLOCKENTRY( void )
#line 746 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //    747           %integer  mask, unsaved, reg
#line 747 "regression-compile-tmp/vax-pass3.imp"
int MASK;
#line 747 "regression-compile-tmp/vax-pass3.imp"
int UNSAVED;
#line 747 "regression-compile-tmp/vax-pass3.imp"
int REG;
                                                                //    748           %integer  frame
#line 748 "regression-compile-tmp/vax-pass3.imp"
int FRAME;
                                                                //    749           base = 13 %if base = 12;            ! bottom 2 levels
#line 749 "regression-compile-tmp/vax-pass3.imp"
if (((BASE) != (12))) goto L_005c;
#line 749 "regression-compile-tmp/vax-pass3.imp"
BASE = 13;
#line 749 "regression-compile-tmp/vax-pass3.imp"
L_005c:;
                                                                //    750           dump line %if ldump # 0
#line 750 "regression-compile-tmp/vax-pass3.imp"
if (((LDUMP) == (0))) goto L_005d;
#line 750 "regression-compile-tmp/vax-pass3.imp"
DUMPLINE();
#line 750 "regression-compile-tmp/vax-pass3.imp"
L_005d:;
                                                                //    751           buff == codep
#line 751 "regression-compile-tmp/vax-pass3.imp"
BUFF = &CODEP;
                                                                //    752           ! Calculate true offset from FP of args to this proc
                                                                //    753           ! for benefit of inner procs referencing them.  This
                                                                //    754           ! is affected by the number of regs saved on the stack
                                                                //    755           ! on proc call.  Pass 2 assumes all regs saved, we now
                                                                //    756           ! calculate how many aren't, and subtract this*4 from
                                                                //    757           ! displacement used by pass 2.
                                                                //    758           mask = proc_mask;  unsaved = 0
#line 758 "regression-compile-tmp/vax-pass3.imp"
MASK = PROC->MASK;
#line 758 "regression-compile-tmp/vax-pass3.imp"
UNSAVED = 0;
                                                                //    759           %for reg = 2, 1, 11 %cycle
#line 759 "regression-compile-tmp/vax-pass3.imp"
REG = 1;
if ((((11)-(2)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle REG = 2, 1, 11");
L_005e:;
if (REG == 11) goto L_005f;
REG += 1;
                                                                //    760              unsaved = unsaved + 1 %if mask & (1<<reg) = 0
#line 760 "regression-compile-tmp/vax-pass3.imp"
if (((((MASK) & (((1) << (REG))))) != (0))) goto L_0061;
#line 760 "regression-compile-tmp/vax-pass3.imp"
UNSAVED = (((int)(UNSAVED)) + (1));
#line 760 "regression-compile-tmp/vax-pass3.imp"
L_0061:;
                                                                //    761           %repeat
#line 761 "regression-compile-tmp/vax-pass3.imp"
goto L_005e;
#line 761 "regression-compile-tmp/vax-pass3.imp"
L_005f:;
                                                                //    762           base mod(base) = unsaved*4;         ! to subtract off
#line 762 "regression-compile-tmp/vax-pass3.imp"
(BASEMOD-5)[BASE] = (((int)(UNSAVED)) * (4));
                                                                //    763           frame = proc_frame;                 ! frame size
#line 763 "regression-compile-tmp/vax-pass3.imp"
FRAME = PROC->FRAME;
                                                                //    764           start immed (50);                   ! For entry sequence
#line 764 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(50);
                                                                //    765           addw (mask);                        ! entry mask
#line 765 "regression-compile-tmp/vax-pass3.imp"
ADDW(MASK);
                                                                //    766           %if proc_type # 0 %start
#line 766 "regression-compile-tmp/vax-pass3.imp"
if (((PROC->TYPE) == (0))) goto L_0062;
                                                                //    767              ! %external entry
                                                                //    768              get string (text);               ! name
#line 768 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    769              %if entry tag = btag %and init # 0   %start
#line 769 "regression-compile-tmp/vax-pass3.imp"
if (((ENTRYTAG) != (BTAG))) goto L_0063;
#line 769 "regression-compile-tmp/vax-pass3.imp"
if (((INIT) == (0))) goto L_0063;
                                                                //    770                 add (calls);  add (0);        ! calls  #0,init proc
#line 770 "regression-compile-tmp/vax-pass3.imp"
ADD(251);
#line 770 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //    771                 end immed
#line 771 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    772                 stag (init proc);             ! spec reference
#line 772 "regression-compile-tmp/vax-pass3.imp"
STAG(INITPROC);
                                                                //    773                 add (tir stopicr);            ! store it
#line 773 "regression-compile-tmp/vax-pass3.imp"
ADD(28);
                                                                //    774                 ca = ca + 5
#line 774 "regression-compile-tmp/vax-pass3.imp"
*CA = ((*(int *)(CA)) + (5));
                                                                //    775                 start immed (1)
#line 775 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(1);
                                                                //    776              %finish
#line 776 "regression-compile-tmp/vax-pass3.imp"
L_0063:;
                                                                //    777              add (moval);   end immed;        ! moval
#line 777 "regression-compile-tmp/vax-pass3.imp"
ADD(222);
#line 777 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    778              need (1+1+length(text)+1+1);
#line 778 "regression-compile-tmp/vax-pass3.imp"
NEED((((int)((((int)((((unsigned char)(2)) + (*_imp_LENGTH(&TEXT))))) + (1)))) + (1)));
                                                                //    779              stag (text."_");
#line 779 "regression-compile-tmp/vax-pass3.imp"
STAG(_imp_join((_imp_string)TEXT,(_imp_string)_imp_str_literal("_")));
                                                                //    780              add (tir stopicr);               !        ep_,
#line 780 "regression-compile-tmp/vax-pass3.imp"
ADD(28);
                                                                //    781              ca = ca + 5
#line 781 "regression-compile-tmp/vax-pass3.imp"
*CA = ((*(int *)(CA)) + (5));
                                                                //    782              start immed (50);  add (16_5B);  !            gla
#line 782 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(50);
#line 782 "regression-compile-tmp/vax-pass3.imp"
ADD(91);
                                                                //    783           %finish
#line 783 "regression-compile-tmp/vax-pass3.imp"
L_0062:;
                                                                //    784           add (movl);                         ! movl
#line 784 "regression-compile-tmp/vax-pass3.imp"
ADD(208);
                                                                //    785           add (16_5D);  add (16_50+base);     !        fp, base
#line 785 "regression-compile-tmp/vax-pass3.imp"
ADD(93);
#line 785 "regression-compile-tmp/vax-pass3.imp"
ADD((((int)(80)) + (BASE)));
                                                                //    786           %if frame # 0 %start
#line 786 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) == (0))) goto L_0064;
                                                                //    787              %if frame <= 63 %start
#line 787 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) > (63))) goto L_0065;
                                                                //    788                 add (subl2);                  ! subl2
#line 788 "regression-compile-tmp/vax-pass3.imp"
ADD(194);
                                                                //    789                 add (frame);                  !        S^#frame
#line 789 "regression-compile-tmp/vax-pass3.imp"
ADD(FRAME);
                                                                //    790              %else %if frame <= 16_7fff
#line 790 "regression-compile-tmp/vax-pass3.imp"
goto L_0066;
#line 790 "regression-compile-tmp/vax-pass3.imp"
L_0065:;
#line 790 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) > (32767))) goto L_0067;
                                                                //    791                 add (movab);                  ! movab
#line 791 "regression-compile-tmp/vax-pass3.imp"
ADD(158);
                                                                //    792                 add (16_CE);  addw (-frame);  !        W^-frame(sp)
#line 792 "regression-compile-tmp/vax-pass3.imp"
ADD(206);
#line 792 "regression-compile-tmp/vax-pass3.imp"
ADDW((-(FRAME)));
                                                                //    793              %else
#line 793 "regression-compile-tmp/vax-pass3.imp"
goto L_0066;
#line 793 "regression-compile-tmp/vax-pass3.imp"
L_0067:;
                                                                //    794                 add (subl2);                  ! subl2
#line 794 "regression-compile-tmp/vax-pass3.imp"
ADD(194);
                                                                //    795                 add (16_8F);  addl (frame);   !        I^#frame
#line 795 "regression-compile-tmp/vax-pass3.imp"
ADD(143);
#line 795 "regression-compile-tmp/vax-pass3.imp"
ADDL(FRAME);
                                                                //    796              %finish
#line 796 "regression-compile-tmp/vax-pass3.imp"
L_0066:;
                                                                //    797              add (16_5E);                     !                    , SP
#line 797 "regression-compile-tmp/vax-pass3.imp"
ADD(94);
                                                                //    798              %if check ass # 0 %start
#line 798 "regression-compile-tmp/vax-pass3.imp"
if (((CHECKASS) == (0))) goto L_0068;
                                                                //    799                 add (movc5);  add (0);  add (16_6D);  add (16_6B)
#line 799 "regression-compile-tmp/vax-pass3.imp"
ADD(44);
#line 799 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
#line 799 "regression-compile-tmp/vax-pass3.imp"
ADD(109);
#line 799 "regression-compile-tmp/vax-pass3.imp"
ADD(107);
                                                                //    800                 %if frame <= 63 %start
#line 800 "regression-compile-tmp/vax-pass3.imp"
if (((FRAME) > (63))) goto L_0069;
                                                                //    801                    add (frame)
#line 801 "regression-compile-tmp/vax-pass3.imp"
ADD(FRAME);
                                                                //    802                 %else
#line 802 "regression-compile-tmp/vax-pass3.imp"
goto L_006a;
#line 802 "regression-compile-tmp/vax-pass3.imp"
L_0069:;
                                                                //    803                    add (16_8F);  addw (frame&16_7FFF)
#line 803 "regression-compile-tmp/vax-pass3.imp"
ADD(143);
#line 803 "regression-compile-tmp/vax-pass3.imp"
ADDW(((FRAME) & (32767)));
                                                                //    804                 %finish
#line 804 "regression-compile-tmp/vax-pass3.imp"
L_006a:;
                                                                //    805                 add (16_6E)
#line 805 "regression-compile-tmp/vax-pass3.imp"
ADD(110);
                                                                //    806                 !movc5_#0,(fp),(gla), #N, (sp)
                                                                //    807              %finish
#line 807 "regression-compile-tmp/vax-pass3.imp"
L_0068:;
                                                                //    808           %finish
#line 808 "regression-compile-tmp/vax-pass3.imp"
L_0064:;
                                                                //    809           end immed
#line 809 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    810        %end
#line 810 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block HANDLEBLOCKENTRY at level 3
                                                                //    811  
                                                                //    812        initialise buffers %if called = 0
#line 812 "regression-compile-tmp/vax-pass3.imp"
if (((CALLED) != (0))) goto L_006b;
#line 812 "regression-compile-tmp/vax-pass3.imp"
INITIALISEBUFFERS();
#line 812 "regression-compile-tmp/vax-pass3.imp"
L_006b:;
                                                                //    813        procs = procs + 1
#line 813 "regression-compile-tmp/vax-pass3.imp"
PROCS = (((int)(PROCS)) + (1));
                                                                //    814        proc == proc tab(procs)
#line 814 "regression-compile-tmp/vax-pass3.imp"
PROC = &PROCTAB[(((int)(PROCS)) - (1))];
                                                                //    815        bsel (old da, diagp, proc_diag ep)
#line 815 "regression-compile-tmp/vax-pass3.imp"
BSEL(&OLDDA, &DIAGP, PROC->DIAGEP);
                                                                //    816        bsel (old la, linep, proc_line ep)
#line 816 "regression-compile-tmp/vax-pass3.imp"
BSEL(&OLDLA, &LINEP, PROC->LINEEP);
                                                                //    817        bsel (old ca, codep, def(btag)_ca)
#line 817 "regression-compile-tmp/vax-pass3.imp"
BSEL(&OLDCA, &CODEP, DEF[BTAG].CA);
                                                                //    818        handle block entry %if base # 0
#line 818 "regression-compile-tmp/vax-pass3.imp"
if (((BASE) == (0))) goto L_006c;
#line 818 "regression-compile-tmp/vax-pass3.imp"
HANDLEBLOCKENTRY();
#line 818 "regression-compile-tmp/vax-pass3.imp"
L_006c:;
                                                                //    819  
                                                                //    820        %cycle
#line 820 "regression-compile-tmp/vax-pass3.imp"
L_006d:;
                                                                //    821           get (ocode)
#line 821 "regression-compile-tmp/vax-pass3.imp"
GET(&OCODE);
                                                                //    822           buff == buff for(code type(ocode))
#line 822 "regression-compile-tmp/vax-pass3.imp"
BUFF = BUFFFOR[(CODETYPE-1)[OCODE]];
                                                                //    823           -> c(ocode) %if 0 < ocode <= 25
#line 823 "regression-compile-tmp/vax-pass3.imp"
if ((((0) >= (OCODE))) || (((OCODE) > (25)))) goto L_0070;
#line 823 "regression-compile-tmp/vax-pass3.imp"
sw2_C_idx = OCODE; if ((1 <= sw2_C_idx) && (sw2_C_idx <= 25)) goto *(sw2_C-1)[sw2_C_idx];  /* Bounds=1:25 */ else {
   /*_imp_signal(8, 2, sw2_C_idx);*/
   fprintf(stderr, "%%SWITCH index C(%d) not in range 1:25 at %s:%d\n",
           sw2_C_idx, (_imp_current_file != 0 ? _imp_current_file : __FILE__),
           (_imp_current_line != 0 ? _imp_current_line : __LINE__));
           exit(1);
}
#line 823 "regression-compile-tmp/vax-pass3.imp"
L_0070:;
                                                                //    824     c(*): error ("spurious object", ocode)
#line 824 "regression-compile-tmp/vax-pass3.imp"
sw2_C_default:;
#line 824 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("spurious object"), OCODE);
                                                                //    825  
                                                                //    826     c(obj diag p):
#line 826 "regression-compile-tmp/vax-pass3.imp"
sw2_C_17:;
                                                                //    827           n = getword
#line 827 "regression-compile-tmp/vax-pass3.imp"
N = GETWORD();
                                                                //    828           get string (text)
#line 828 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    829           ldiag = proc_diag
#line 829 "regression-compile-tmp/vax-pass3.imp"
LDIAG = PROC->DIAG;
                                                                //    830           error ("corrupt diags", 0) %if ldiag = 0
#line 830 "regression-compile-tmp/vax-pass3.imp"
if (((LDIAG) != (0))) goto L_0071;
#line 830 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("corrupt diags"), 0);
#line 830 "regression-compile-tmp/vax-pass3.imp"
L_0071:;
                                                                //    831           start immed (50)
#line 831 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(50);
                                                                //    832           addw (ldiag);  addw (n);  addl (limit);  add text (0)
#line 832 "regression-compile-tmp/vax-pass3.imp"
ADDW(LDIAG);
#line 832 "regression-compile-tmp/vax-pass3.imp"
ADDW(N);
#line 832 "regression-compile-tmp/vax-pass3.imp"
ADDL(LIMIT);
#line 832 "regression-compile-tmp/vax-pass3.imp"
ADDTEXT(0);
                                                                //    833           end immed
#line 833 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    834           %continue
#line 834 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    835     c(obj diag v):
#line 835 "regression-compile-tmp/vax-pass3.imp"
sw2_C_18:;
                                                                //    836           start immed (50)
#line 836 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(50);
                                                                //    837           addw (getword);  addl (getlong)
#line 837 "regression-compile-tmp/vax-pass3.imp"
ADDW(GETWORD());
#line 837 "regression-compile-tmp/vax-pass3.imp"
ADDL(GETLONG());
                                                                //    838           get string (text);  add text (0)
#line 838 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
#line 838 "regression-compile-tmp/vax-pass3.imp"
ADDTEXT(0);
                                                                //    839           end immed
#line 839 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    840           %continue
#line 840 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    841     c(obj code):
#line 841 "regression-compile-tmp/vax-pass3.imp"
sw2_C_2:;
                                                                //    842           load block
#line 842 "regression-compile-tmp/vax-pass3.imp"
LOADBLOCK();
                                                                //    843           %continue
#line 843 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    844     c(obj modd):
#line 844 "regression-compile-tmp/vax-pass3.imp"
sw2_C_23:;
                                                                //    845           get (ocode);  error ("faulty mod", ocode) %if ocode # 2
#line 845 "regression-compile-tmp/vax-pass3.imp"
GET(&OCODE);
#line 845 "regression-compile-tmp/vax-pass3.imp"
if (((OCODE) == (2))) goto L_0072;
#line 845 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("faulty mod"), OCODE);
#line 845 "regression-compile-tmp/vax-pass3.imp"
L_0072:;
                                                                //    846           get (n);                            ! # bytes following
#line 846 "regression-compile-tmp/vax-pass3.imp"
GET(&N);
                                                                //    847           start immed (n)
#line 847 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(N);
                                                                //    848           get (specifier);   n = n - 1
#line 848 "regression-compile-tmp/vax-pass3.imp"
GET(&SPECIFIER);
#line 848 "regression-compile-tmp/vax-pass3.imp"
N = (((int)(N)) - (1));
                                                                //    849           reg = specifier & 15
#line 849 "regression-compile-tmp/vax-pass3.imp"
REG = ((SPECIFIER) & (15));
                                                                //    850           add (specifier)
#line 850 "regression-compile-tmp/vax-pass3.imp"
ADD(SPECIFIER);
                                                                //    851           %if n = 1 %start
#line 851 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (1))) goto L_0073;
                                                                //    852              get (disp)
#line 852 "regression-compile-tmp/vax-pass3.imp"
GET(&DISP);
                                                                //    853           %else %if n = 2
#line 853 "regression-compile-tmp/vax-pass3.imp"
goto L_0074;
#line 853 "regression-compile-tmp/vax-pass3.imp"
L_0073:;
#line 853 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (2))) goto L_0075;
                                                                //    854              disp = getword
#line 854 "regression-compile-tmp/vax-pass3.imp"
DISP = GETWORD();
                                                                //    855           %else %if n = 4
#line 855 "regression-compile-tmp/vax-pass3.imp"
goto L_0074;
#line 855 "regression-compile-tmp/vax-pass3.imp"
L_0075:;
#line 855 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (4))) goto L_0076;
                                                                //    856              disp = getlong
#line 856 "regression-compile-tmp/vax-pass3.imp"
DISP = GETLONG();
                                                                //    857           %else
#line 857 "regression-compile-tmp/vax-pass3.imp"
goto L_0074;
#line 857 "regression-compile-tmp/vax-pass3.imp"
L_0076:;
                                                                //    858              error ("faulty disp in mod", n)
#line 858 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("faulty disp in mod"), N);
                                                                //    859           %finish
#line 859 "regression-compile-tmp/vax-pass3.imp"
L_0074:;
                                                                //    860           disp = disp - base mod(reg)
#line 860 "regression-compile-tmp/vax-pass3.imp"
DISP = ((DISP) - ((int)((BASEMOD-5)[REG])));
                                                                //    861           add (disp)
#line 861 "regression-compile-tmp/vax-pass3.imp"
ADD(DISP);
                                                                //    862           add (disp>>8) %if n > 1
#line 862 "regression-compile-tmp/vax-pass3.imp"
if (((N) <= (1))) goto L_0077;
#line 862 "regression-compile-tmp/vax-pass3.imp"
ADD((int)((((unsigned int)(DISP)) >> (8))));
#line 862 "regression-compile-tmp/vax-pass3.imp"
L_0077:;
                                                                //    863           addw (disp>>16) %if n = 4
#line 863 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (4))) goto L_0078;
#line 863 "regression-compile-tmp/vax-pass3.imp"
ADDW((int)((((unsigned int)(DISP)) >> (16))));
#line 863 "regression-compile-tmp/vax-pass3.imp"
L_0078:;
                                                                //    864           end immed
#line 864 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    865           %continue
#line 865 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    866     c(obj gla):
#line 866 "regression-compile-tmp/vax-pass3.imp"
sw2_C_3:;
                                                                //    867           gb = getlong
#line 867 "regression-compile-tmp/vax-pass3.imp"
GB = GETLONG();
                                                                //    868           error ("gla pos error", gb-ga) %if gb # ga
#line 868 "regression-compile-tmp/vax-pass3.imp"
if (((GB) == (*GA))) goto L_0079;
#line 868 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("gla pos error"), (((int)(GB)) - (*GA)));
#line 868 "regression-compile-tmp/vax-pass3.imp"
L_0079:;
                                                                //    869           load block
#line 869 "regression-compile-tmp/vax-pass3.imp"
LOADBLOCK();
                                                                //    870           %continue
#line 870 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    871     c(obj glam):
#line 871 "regression-compile-tmp/vax-pass3.imp"
sw2_C_22:;
                                                                //    872           gb = getlong
#line 872 "regression-compile-tmp/vax-pass3.imp"
GB = GETLONG();
                                                                //    873           error ("glam pos error", gb-ga) %if gb # ga
#line 873 "regression-compile-tmp/vax-pass3.imp"
if (((GB) == (*GA))) goto L_007a;
#line 873 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("glam pos error"), (((int)(GB)) - (*GA)));
#line 873 "regression-compile-tmp/vax-pass3.imp"
L_007a:;
                                                                //    874           value = getlong;                    ! value
#line 874 "regression-compile-tmp/vax-pass3.imp"
VALUE = GETLONG();
                                                                //    875           count = getlong;                    ! repeat count
#line 875 "regression-compile-tmp/vax-pass3.imp"
COUNT = GETLONG();
                                                                //    876           size  = getlong;                    ! bytes in object
#line 876 "regression-compile-tmp/vax-pass3.imp"
SIZE = GETLONG();
                                                                //    877           %if count*size > 15 %start
#line 877 "regression-compile-tmp/vax-pass3.imp"
if ((((((int)(COUNT)) * (SIZE))) <= (15))) goto L_007b;
                                                                //    878              ! Worth doing as 'store repeated' type
                                                                //    879              stak (value)
#line 879 "regression-compile-tmp/vax-pass3.imp"
STAK(VALUE);
                                                                //    880              stak (count)
#line 880 "regression-compile-tmp/vax-pass3.imp"
STAK(COUNT);
                                                                //    881              need (1)
#line 881 "regression-compile-tmp/vax-pass3.imp"
NEED(1);
                                                                //    882              %if size = 1 %start
#line 882 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (1))) goto L_007c;
                                                                //    883                 add (tir sto rb)
#line 883 "regression-compile-tmp/vax-pass3.imp"
ADD(39);
                                                                //    884              %else %if size = 2
#line 884 "regression-compile-tmp/vax-pass3.imp"
goto L_007d;
#line 884 "regression-compile-tmp/vax-pass3.imp"
L_007c:;
#line 884 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (2))) goto L_007e;
                                                                //    885                 add (tir sto rw)
#line 885 "regression-compile-tmp/vax-pass3.imp"
ADD(40);
                                                                //    886              %else %if size = 4
#line 886 "regression-compile-tmp/vax-pass3.imp"
goto L_007d;
#line 886 "regression-compile-tmp/vax-pass3.imp"
L_007e:;
#line 886 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (4))) goto L_007f;
                                                                //    887                 add (tir sto rl)
#line 887 "regression-compile-tmp/vax-pass3.imp"
ADD(31);
                                                                //    888              %else
#line 888 "regression-compile-tmp/vax-pass3.imp"
goto L_007d;
#line 888 "regression-compile-tmp/vax-pass3.imp"
L_007f:;
                                                                //    889                 error ("Faulty glam size", size)
#line 889 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("Faulty glam size"), SIZE);
                                                                //    890              %finish
#line 890 "regression-compile-tmp/vax-pass3.imp"
L_007d:;
                                                                //    891              ga = ga + count*size
#line 891 "regression-compile-tmp/vax-pass3.imp"
*GA = ((*GA) + ((int)((((int)(COUNT)) * (SIZE)))));
                                                                //    892           %else
#line 892 "regression-compile-tmp/vax-pass3.imp"
goto L_0080;
#line 892 "regression-compile-tmp/vax-pass3.imp"
L_007b:;
                                                                //    893              start immed (count*size)
#line 893 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED((((int)(COUNT)) * (SIZE)));
                                                                //    894              %for n = 1, 1, count %cycle
#line 894 "regression-compile-tmp/vax-pass3.imp"
{static int _initial, _increment, _final, _control;
_initial = 1; _increment = 1; _final = COUNT; N = _control = _initial;
if (((_final-_initial) % _increment) != 0) _imp_signal(5,1,0,"Illegal cycle N = 1, 1, COUNT");
N -= _increment; _control -= _increment;
L_0081:;
if (N == _final) goto L_0082;
N += _increment; _control += _increment;
if (N != _control) _imp_signal(4,2,0,"Corrupt control variable N"); /* FOR loop control variable corrupted */
}
                                                                //    895                 %if size = 1 %start
#line 895 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (1))) goto L_0084;
                                                                //    896                    add (value)
#line 896 "regression-compile-tmp/vax-pass3.imp"
ADD(VALUE);
                                                                //    897                 %else %if size = 2
#line 897 "regression-compile-tmp/vax-pass3.imp"
goto L_0085;
#line 897 "regression-compile-tmp/vax-pass3.imp"
L_0084:;
#line 897 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (2))) goto L_0086;
                                                                //    898                    addw (value)
#line 898 "regression-compile-tmp/vax-pass3.imp"
ADDW(VALUE);
                                                                //    899                 %else %if size = 4
#line 899 "regression-compile-tmp/vax-pass3.imp"
goto L_0085;
#line 899 "regression-compile-tmp/vax-pass3.imp"
L_0086:;
#line 899 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (4))) goto L_0087;
                                                                //    900                    addl (value)
#line 900 "regression-compile-tmp/vax-pass3.imp"
ADDL(VALUE);
                                                                //    901                 %else
#line 901 "regression-compile-tmp/vax-pass3.imp"
goto L_0085;
#line 901 "regression-compile-tmp/vax-pass3.imp"
L_0087:;
                                                                //    902                    error ("Faulty glam size", size)
#line 902 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("Faulty glam size"), SIZE);
                                                                //    903                 %finish
#line 903 "regression-compile-tmp/vax-pass3.imp"
L_0085:;
                                                                //    904              %repeat
#line 904 "regression-compile-tmp/vax-pass3.imp"
goto L_0081;
#line 904 "regression-compile-tmp/vax-pass3.imp"
L_0082:;
                                                                //    905              end immed
#line 905 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    906           %finish
#line 906 "regression-compile-tmp/vax-pass3.imp"
L_0080:;
                                                                //    907           %continue
#line 907 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    908     c(obj pdef): ! proc def
#line 908 "regression-compile-tmp/vax-pass3.imp"
sw2_C_4:;
                                                                //    909           tag = getlong
#line 909 "regression-compile-tmp/vax-pass3.imp"
TAG = GETLONG();
                                                                //    910           get string (text)
#line 910 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    911           spec (2_1010, 0,
#line 911 "regression-compile-tmp/vax-pass3.imp"
SPEC(10, 0, DEF[TAG].CA, PROC->MASK);
                                                                //    912                 def(tag)_ca, proc_mask);      ! ep
                                                                //    913           spec (2_1010, 1, 0, 0);             ! gla (ep_)
#line 913 "regression-compile-tmp/vax-pass3.imp"
SPEC(10, 1, 0, 0);
                                                                //    914           %continue
#line 914 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    915     c(obj pspec): ! proc spec
#line 915 "regression-compile-tmp/vax-pass3.imp"
sw2_C_5:;
                                                                //    916           xno = getword
#line 916 "regression-compile-tmp/vax-pass3.imp"
XNO = GETWORD();
                                                                //    917           get string (text)
#line 917 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    918           %if ext used(xno) # 0 %start;         ! strong code
#line 918 "regression-compile-tmp/vax-pass3.imp"
if (((EXTUSED[(((int)(XNO)) - (1))]) == (0))) goto L_0088;
                                                                //    919              spec (2_1000, 0, 0, 0)
#line 919 "regression-compile-tmp/vax-pass3.imp"
SPEC(8, 0, 0, 0);
                                                                //    920              ext text(xno) = text
#line 920 "regression-compile-tmp/vax-pass3.imp"
EXTTEXT[(((int)(XNO)) - (1))] = TEXT;
                                                                //    921           %finish
#line 921 "regression-compile-tmp/vax-pass3.imp"
L_0088:;
                                                                //    922           %continue
#line 922 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    923     c(obj ddef): ! data def
#line 923 "regression-compile-tmp/vax-pass3.imp"
sw2_C_6:;
                                                                //    924           gx = getlong
#line 924 "regression-compile-tmp/vax-pass3.imp"
GX = GETLONG();
                                                                //    925           get string (text)
#line 925 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    926           spec (2_1010, -1, gx, 0);           ! Note -1 => special
#line 926 "regression-compile-tmp/vax-pass3.imp"
SPEC(10, (-1), GX, 0);
                                                                //    927           %continue
#line 927 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    928     c(obj weak):  ! weak ref
#line 928 "regression-compile-tmp/vax-pass3.imp"
sw2_C_19:;
                                                                //    929     c(obj dspec): ! data ref
#line 929 "regression-compile-tmp/vax-pass3.imp"
sw2_C_7:;
                                                                //    930           xno = getword
#line 930 "regression-compile-tmp/vax-pass3.imp"
XNO = GETWORD();
                                                                //    931           get string (text)
#line 931 "regression-compile-tmp/vax-pass3.imp"
GETSTRING(&TEXT);
                                                                //    932           ext text(xno) = text
#line 932 "regression-compile-tmp/vax-pass3.imp"
EXTTEXT[(((int)(XNO)) - (1))] = TEXT;
                                                                //    933           mode = 2_1000;  mode = 2_1001 %if ocode = obj weak
#line 933 "regression-compile-tmp/vax-pass3.imp"
MODE = 8;
#line 933 "regression-compile-tmp/vax-pass3.imp"
if (((OCODE) != (19))) goto L_0089;
#line 933 "regression-compile-tmp/vax-pass3.imp"
MODE = 9;
#line 933 "regression-compile-tmp/vax-pass3.imp"
L_0089:;
                                                                //    934           spec (mode, 0, 0, 0)
#line 934 "regression-compile-tmp/vax-pass3.imp"
SPEC(MODE, 0, 0, 0);
                                                                //    935           %continue
#line 935 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    936     c(obj ext ref):
#line 936 "regression-compile-tmp/vax-pass3.imp"
sw2_C_25:;
                                                                //    937           xno = getword;                      ! External number
#line 937 "regression-compile-tmp/vax-pass3.imp"
XNO = GETWORD();
                                                                //    938           disp = getlong;                     ! Offset
#line 938 "regression-compile-tmp/vax-pass3.imp"
DISP = GETLONG();
                                                                //    939           get (reg);                          ! Base reg (+ indirect bit)?
#line 939 "regression-compile-tmp/vax-pass3.imp"
GET(&REG);
                                                                //    940           stag (ext text(xno));               ! External address
#line 940 "regression-compile-tmp/vax-pass3.imp"
STAG(EXTTEXT[(((int)(XNO)) - (1))]);
                                                                //    941           %if disp # 0 %start
#line 941 "regression-compile-tmp/vax-pass3.imp"
if (((DISP) == (0))) goto L_008a;
                                                                //    942              stak (disp);   need (1);  add (tir add)
#line 942 "regression-compile-tmp/vax-pass3.imp"
STAK(DISP);
#line 942 "regression-compile-tmp/vax-pass3.imp"
NEED(1);
#line 942 "regression-compile-tmp/vax-pass3.imp"
ADD(51);
                                                                //    943           %finish
#line 943 "regression-compile-tmp/vax-pass3.imp"
L_008a:;
                                                                //    944           need (1);   add (tir stopicr);   ca = ca + 5
#line 944 "regression-compile-tmp/vax-pass3.imp"
NEED(1);
#line 944 "regression-compile-tmp/vax-pass3.imp"
ADD(28);
#line 944 "regression-compile-tmp/vax-pass3.imp"
*CA = ((*(int *)(CA)) + (5));
                                                                //    945           %if reg&16 # 0 %start
#line 945 "regression-compile-tmp/vax-pass3.imp"
if (((((REG) & (16))) == (0))) goto L_008b;
                                                                //    946              !indirect ref - won't work if absolute!!
                                                                //    947              need (16)
#line 947 "regression-compile-tmp/vax-pass3.imp"
NEED(16);
                                                                //    948              add (tir augrb);   addl (-5);    ! Go back to specifier byte
#line 948 "regression-compile-tmp/vax-pass3.imp"
ADD(81);
#line 948 "regression-compile-tmp/vax-pass3.imp"
ADDL((-5));
                                                                //    949              add (tir staub);   add (16_FF);  ! stack byte 16_FF = @L^X(PC)
#line 949 "regression-compile-tmp/vax-pass3.imp"
ADD(7);
#line 949 "regression-compile-tmp/vax-pass3.imp"
ADD(255);
                                                                //    950              add (tir stoub);                 ! store byte
#line 950 "regression-compile-tmp/vax-pass3.imp"
ADD(33);
                                                                //    951              add (tir augrb);   addl (4);     ! return to correct ca
#line 951 "regression-compile-tmp/vax-pass3.imp"
ADD(81);
#line 951 "regression-compile-tmp/vax-pass3.imp"
ADDL(4);
                                                                //    952           %finish
#line 952 "regression-compile-tmp/vax-pass3.imp"
L_008b:;
                                                                //    953           %continue
#line 953 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    954     c(obj reloc): ! relocate gla
#line 954 "regression-compile-tmp/vax-pass3.imp"
sw2_C_8:;
                                                                //    955  !         error ("Not PIC", 0) %if pic # 0
                                                                //    956           gb = getlong;   gx = getlong
#line 956 "regression-compile-tmp/vax-pass3.imp"
GB = GETLONG();
#line 956 "regression-compile-tmp/vax-pass3.imp"
GX = GETLONG();
                                                                //    957           plug glap (glapp, gx, gb, tir stopidr)
#line 957 "regression-compile-tmp/vax-pass3.imp"
PLUGGLAP(&GLAPP, GX, GB, 27);
                                                                //    958           %continue
#line 958 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    959     c(obj set): !set gla
#line 959 "regression-compile-tmp/vax-pass3.imp"
sw2_C_9:;
                                                                //    960           cx = def(getlong)_ca;           ! Switch label address
#line 960 "regression-compile-tmp/vax-pass3.imp"
CX = DEF[GETLONG()].CA;
                                                                //    961           gb = getlong;                       ! Gla address to plug
#line 961 "regression-compile-tmp/vax-pass3.imp"
GB = GETLONG();
                                                                //    962           plug glap (codep, cx+4, gb, tir stold)
#line 962 "regression-compile-tmp/vax-pass3.imp"
PLUGGLAP(&CODEP, (((int)(CX)) + (4)), GB, 25);
                                                                //    963           %continue
#line 963 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    964     c(obj header):
#line 964 "regression-compile-tmp/vax-pass3.imp"
sw2_C_10:;
                                                                //    965           get (nbase);                        ! base
#line 965 "regression-compile-tmp/vax-pass3.imp"
GET(&NBASE);
                                                                //    966           tag = getword;                      ! tag
#line 966 "regression-compile-tmp/vax-pass3.imp"
TAG = GETWORD();
                                                                //    967           lim = getword
#line 967 "regression-compile-tmp/vax-pass3.imp"
LIM = GETWORD();
                                                                //    968           this line = getword
#line 968 "regression-compile-tmp/vax-pass3.imp"
THISLINE = GETWORD();
                                                                //    969           dump code (nbase, tag, def(lim)_ca)
#line 969 "regression-compile-tmp/vax-pass3.imp"
DUMPCODE(NBASE, TAG, DEF[LIM].CA);
                                                                //    970           %continue
#line 970 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    971     c(obj call):
#line 971 "regression-compile-tmp/vax-pass3.imp"
sw2_C_11:;
                                                                //    972           tag = getlong
#line 972 "regression-compile-tmp/vax-pass3.imp"
TAG = GETLONG();
                                                                //    973           disp = def(tag)_ca-ca-2
#line 973 "regression-compile-tmp/vax-pass3.imp"
DISP = (((int)((((int)(DEF[TAG].CA)) - (*CA)))) - (2));
                                                                //    974           start immed (5)
#line 974 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(5);
                                                                //    975           n = range (disp, 1)
#line 975 "regression-compile-tmp/vax-pass3.imp"
N = RANGE(DISP, 1);
                                                                //    976           %if n = 1 %start;
#line 976 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (1))) goto L_008c;
                                                                //    977              add (16_AF);  add (disp)
#line 977 "regression-compile-tmp/vax-pass3.imp"
ADD(175);
#line 977 "regression-compile-tmp/vax-pass3.imp"
ADD(DISP);
                                                                //    978           %else %if n = 2
#line 978 "regression-compile-tmp/vax-pass3.imp"
goto L_008d;
#line 978 "regression-compile-tmp/vax-pass3.imp"
L_008c:;
#line 978 "regression-compile-tmp/vax-pass3.imp"
if (((N) != (2))) goto L_008e;
                                                                //    979              add (16_CF);  addw (disp-1)
#line 979 "regression-compile-tmp/vax-pass3.imp"
ADD(207);
#line 979 "regression-compile-tmp/vax-pass3.imp"
ADDW((((int)(DISP)) - (1)));
                                                                //    980           %else
#line 980 "regression-compile-tmp/vax-pass3.imp"
goto L_008d;
#line 980 "regression-compile-tmp/vax-pass3.imp"
L_008e:;
                                                                //    981              add (16_EF);  addl (disp-3)
#line 981 "regression-compile-tmp/vax-pass3.imp"
ADD(239);
#line 981 "regression-compile-tmp/vax-pass3.imp"
ADDL((((int)(DISP)) - (3)));
                                                                //    982           %finish
#line 982 "regression-compile-tmp/vax-pass3.imp"
L_008d:;
                                                                //    983           end immed
#line 983 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //    984           %continue
#line 984 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //    985     c(obj jump): ! jump <cond> <tag>
#line 985 "regression-compile-tmp/vax-pass3.imp"
sw2_C_12:;
                                                                //    986           get (cond);  tag = getword
#line 986 "regression-compile-tmp/vax-pass3.imp"
GET(&COND);
#line 986 "regression-compile-tmp/vax-pass3.imp"
TAG = GETWORD();
                                                                //    987           cond = cond&15
#line 987 "regression-compile-tmp/vax-pass3.imp"
COND = ((COND) & (15));
                                                                //    988           disp = def(tag)_ca-ca-2
#line 988 "regression-compile-tmp/vax-pass3.imp"
DISP = (((int)((((int)(DEF[TAG].CA)) - (*CA)))) - (2));
                                                                //    989           size = range (disp, 1)
#line 989 "regression-compile-tmp/vax-pass3.imp"
SIZE = RANGE(DISP, 1);
                                                                //    990           start immed (8)
#line 990 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(8);
                                                                //    991           %if cond = 0 %start;          !unconditional
#line 991 "regression-compile-tmp/vax-pass3.imp"
if (((COND) != (0))) goto L_008f;
                                                                //    992              %if size = 1 %start
#line 992 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (1))) goto L_0090;
                                                                //    993                 add (brb);  add (disp)
#line 993 "regression-compile-tmp/vax-pass3.imp"
ADD(17);
#line 993 "regression-compile-tmp/vax-pass3.imp"
ADD(DISP);
                                                                //    994              %else %if size = 2
#line 994 "regression-compile-tmp/vax-pass3.imp"
goto L_0091;
#line 994 "regression-compile-tmp/vax-pass3.imp"
L_0090:;
#line 994 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (2))) goto L_0092;
                                                                //    995                 add (brw);  addw (disp-1)
#line 995 "regression-compile-tmp/vax-pass3.imp"
ADD(49);
#line 995 "regression-compile-tmp/vax-pass3.imp"
ADDW((((int)(DISP)) - (1)));
                                                                //    996              %else
#line 996 "regression-compile-tmp/vax-pass3.imp"
goto L_0091;
#line 996 "regression-compile-tmp/vax-pass3.imp"
L_0092:;
                                                                //    997                 add (jmp);  add (16_EF);  addl (disp-4)
#line 997 "regression-compile-tmp/vax-pass3.imp"
ADD(23);
#line 997 "regression-compile-tmp/vax-pass3.imp"
ADD(239);
#line 997 "regression-compile-tmp/vax-pass3.imp"
ADDL((((int)(DISP)) - (4)));
                                                                //    998              %finish
#line 998 "regression-compile-tmp/vax-pass3.imp"
L_0091:;
                                                                //    999           %else;                        !conditional
#line 999 "regression-compile-tmp/vax-pass3.imp"
goto L_0093;
#line 999 "regression-compile-tmp/vax-pass3.imp"
L_008f:;
                                                                //   1000              %if size = 1 %start
#line 1000 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (1))) goto L_0094;
                                                                //   1001                 add (branch(cond));   add (disp)
#line 1001 "regression-compile-tmp/vax-pass3.imp"
ADD(BRANCH[COND]);
#line 1001 "regression-compile-tmp/vax-pass3.imp"
ADD(DISP);
                                                                //   1002              %else %if size = 2
#line 1002 "regression-compile-tmp/vax-pass3.imp"
goto L_0095;
#line 1002 "regression-compile-tmp/vax-pass3.imp"
L_0094:;
#line 1002 "regression-compile-tmp/vax-pass3.imp"
if (((SIZE) != (2))) goto L_0096;
                                                                //   1003                 add (branch(cond!!7));  add (3)
#line 1003 "regression-compile-tmp/vax-pass3.imp"
ADD(BRANCH[((COND) ^ (7))]);
#line 1003 "regression-compile-tmp/vax-pass3.imp"
ADD(3);
                                                                //   1004                 add (brw);  addw (disp-3)
#line 1004 "regression-compile-tmp/vax-pass3.imp"
ADD(49);
#line 1004 "regression-compile-tmp/vax-pass3.imp"
ADDW((((int)(DISP)) - (3)));
                                                                //   1005              %else
#line 1005 "regression-compile-tmp/vax-pass3.imp"
goto L_0095;
#line 1005 "regression-compile-tmp/vax-pass3.imp"
L_0096:;
                                                                //   1006                 add (branch(cond!!7));  add (6)
#line 1006 "regression-compile-tmp/vax-pass3.imp"
ADD(BRANCH[((COND) ^ (7))]);
#line 1006 "regression-compile-tmp/vax-pass3.imp"
ADD(6);
                                                                //   1007                 add (jmp);  add (16_EF);  addl (disp-6)
#line 1007 "regression-compile-tmp/vax-pass3.imp"
ADD(23);
#line 1007 "regression-compile-tmp/vax-pass3.imp"
ADD(239);
#line 1007 "regression-compile-tmp/vax-pass3.imp"
ADDL((((int)(DISP)) - (6)));
                                                                //   1008              %finish
#line 1008 "regression-compile-tmp/vax-pass3.imp"
L_0095:;
                                                                //   1009           %finish
#line 1009 "regression-compile-tmp/vax-pass3.imp"
L_0093:;
                                                                //   1010           end immed
#line 1010 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1011           %continue
#line 1011 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //   1012     c(obj b lab):  ! m/code byte label reference
#line 1012 "regression-compile-tmp/vax-pass3.imp"
sw2_C_20:;
                                                                //   1013     c(obj w lab):  !  " " " word  " "  " " " "
#line 1013 "regression-compile-tmp/vax-pass3.imp"
sw2_C_21:;
                                                                //   1014           disp = def(getword)_ca-ca-1
#line 1014 "regression-compile-tmp/vax-pass3.imp"
DISP = (((int)((((int)(DEF[GETWORD()].CA)) - (*CA)))) - (1));
                                                                //   1015           start immed (2)
#line 1015 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(2);
                                                                //   1016           %if ocode = obj w lab %start;          !word
#line 1016 "regression-compile-tmp/vax-pass3.imp"
if (((OCODE) != (21))) goto L_0097;
                                                                //   1017              addw (disp-1)
#line 1017 "regression-compile-tmp/vax-pass3.imp"
ADDW((((int)(DISP)) - (1)));
                                                                //   1018           %else;                                 !byte
#line 1018 "regression-compile-tmp/vax-pass3.imp"
goto L_0098;
#line 1018 "regression-compile-tmp/vax-pass3.imp"
L_0097:;
                                                                //   1019              error ("branch overflow", disp) %unless -128 <= disp <= 127
#line 1019 "regression-compile-tmp/vax-pass3.imp"
if (((((-128)) > (DISP))) || (((DISP) <= (127)))) goto L_0099;
#line 1019 "regression-compile-tmp/vax-pass3.imp"
L_0083:;
#line 1019 "regression-compile-tmp/vax-pass3.imp"
ERROR(_imp_str_literal("branch overflow"), DISP);
#line 1019 "regression-compile-tmp/vax-pass3.imp"
L_0099:;
                                                                //   1020              add (disp)
#line 1020 "regression-compile-tmp/vax-pass3.imp"
ADD(DISP);
                                                                //   1021           %finish
#line 1021 "regression-compile-tmp/vax-pass3.imp"
L_0098:;
                                                                //   1022           end immed
#line 1022 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1023           %continue
#line 1023 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //   1024     c(obj prim spec):
#line 1024 "regression-compile-tmp/vax-pass3.imp"
sw2_C_13:;
                                                                //   1025           get (pno);  set prim text (pno)
#line 1025 "regression-compile-tmp/vax-pass3.imp"
GET(&PNO);
#line 1025 "regression-compile-tmp/vax-pass3.imp"
SETPRIMTEXT(PNO);
                                                                //   1026           spec (2_1000, 0, 0, 0)
#line 1026 "regression-compile-tmp/vax-pass3.imp"
SPEC(8, 0, 0, 0);
                                                                //   1027           %continue
#line 1027 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //   1028     c(obj prim ref):
#line 1028 "regression-compile-tmp/vax-pass3.imp"
sw2_C_24:;
                                                                //   1029           get (pno);  set prim text (pno)
#line 1029 "regression-compile-tmp/vax-pass3.imp"
GET(&PNO);
#line 1029 "regression-compile-tmp/vax-pass3.imp"
SETPRIMTEXT(PNO);
                                                                //   1030           %if pno # proc enter prim %start
#line 1030 "regression-compile-tmp/vax-pass3.imp"
if (((PNO) == (13))) goto L_009a;
                                                                //   1031              start immed (1);  add (jsb);   end immed
#line 1031 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(1);
#line 1031 "regression-compile-tmp/vax-pass3.imp"
ADD(22);
#line 1031 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1032           %finish
#line 1032 "regression-compile-tmp/vax-pass3.imp"
L_009a:;
                                                                //   1033           stag (text)
#line 1033 "regression-compile-tmp/vax-pass3.imp"
STAG(TEXT);
                                                                //   1034           need (1);  add (tir stopicr);  ca = ca + 5
#line 1034 "regression-compile-tmp/vax-pass3.imp"
NEED(1);
#line 1034 "regression-compile-tmp/vax-pass3.imp"
ADD(28);
#line 1034 "regression-compile-tmp/vax-pass3.imp"
*CA = ((*(int *)(CA)) + (5));
                                                                //   1035           %continue
#line 1035 "regression-compile-tmp/vax-pass3.imp"
goto L_006f;
                                                                //   1036     c(obj line): ! line number
#line 1036 "regression-compile-tmp/vax-pass3.imp"
sw2_C_15:;
                                                                //   1037           this line = getword
#line 1037 "regression-compile-tmp/vax-pass3.imp"
THISLINE = GETWORD();
                                                                //   1038           dump line %if ldump # 0
#line 1038 "regression-compile-tmp/vax-pass3.imp"
if (((LDUMP) == (0))) goto L_009b;
#line 1038 "regression-compile-tmp/vax-pass3.imp"
DUMPLINE();
#line 1038 "regression-compile-tmp/vax-pass3.imp"
L_009b:;
                                                                //   1039        %repeat
#line 1039 "regression-compile-tmp/vax-pass3.imp"
L_006f:;
#line 1039 "regression-compile-tmp/vax-pass3.imp"
goto L_006d;
                                                                //   1040  
                                                                //   1041     c(obj term):!block end
#line 1041 "regression-compile-tmp/vax-pass3.imp"
sw2_C_16:;
                                                                //   1042        %if diagp_pa # 0 %start
#line 1042 "regression-compile-tmp/vax-pass3.imp"
if (((DIAGP.PA) == (0))) goto L_006e;
                                                                //   1043           buff == diagp
#line 1043 "regression-compile-tmp/vax-pass3.imp"
BUFF = &DIAGP;
                                                                //   1044           start immed (1);  add (0);  end immed
#line 1044 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(1);
#line 1044 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
#line 1044 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1045        %finish
#line 1045 "regression-compile-tmp/vax-pass3.imp"
L_006e:;
                                                                //   1046        evword = getword;                        !events
#line 1046 "regression-compile-tmp/vax-pass3.imp"
EVWORD = GETWORD();
                                                                //   1047        %if evword # 0 %start;                   !events trapped
#line 1047 "regression-compile-tmp/vax-pass3.imp"
if (((EVWORD) == (0))) goto L_009c;
                                                                //   1048           evlow = getword;                      !evlow
#line 1048 "regression-compile-tmp/vax-pass3.imp"
EVLOW = GETWORD();
                                                                //   1049           evep  = getword;                      !evep
#line 1049 "regression-compile-tmp/vax-pass3.imp"
EVEP = GETWORD();
                                                                //   1050           buff == codep;  save = ca
#line 1050 "regression-compile-tmp/vax-pass3.imp"
BUFF = &CODEP;
#line 1050 "regression-compile-tmp/vax-pass3.imp"
SAVE = *CA;
                                                                //   1051           select (evp)
#line 1051 "regression-compile-tmp/vax-pass3.imp"
SELECT(EVP);
                                                                //   1052           start immed (16)
#line 1052 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(16);
                                                                //   1053           addl (evword);                        !ev list
#line 1053 "regression-compile-tmp/vax-pass3.imp"
ADDL(EVWORD);
                                                                //   1054           addl (def(evlow)_ca);                 !from
#line 1054 "regression-compile-tmp/vax-pass3.imp"
ADDL(DEF[EVLOW].CA);
                                                                //   1055           addl (save);                          !to (ca)
#line 1055 "regression-compile-tmp/vax-pass3.imp"
ADDL(SAVE);
                                                                //   1056           addl (def(evep)_ca);                  !entry point
#line 1056 "regression-compile-tmp/vax-pass3.imp"
ADDL(DEF[EVEP].CA);
                                                                //   1057           end immed
#line 1057 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1058           evp = evp + 16
#line 1058 "regression-compile-tmp/vax-pass3.imp"
EVP = (((int)(EVP)) + (16));
                                                                //   1059        %finish
#line 1059 "regression-compile-tmp/vax-pass3.imp"
L_009c:;
                                                                //   1060  
                                                                //   1061     c(obj end):
#line 1061 "regression-compile-tmp/vax-pass3.imp"
sw2_C_14:;
                                                                //   1062        bsel (n, diagp, old da)
#line 1062 "regression-compile-tmp/vax-pass3.imp"
BSEL(&N, &DIAGP, OLDDA);
                                                                //   1063        bsel (n, linep, old la)
#line 1063 "regression-compile-tmp/vax-pass3.imp"
BSEL(&N, &LINEP, OLDLA);
                                                                //   1064        bsel (n, codep, old ca)
#line 1064 "regression-compile-tmp/vax-pass3.imp"
BSEL(&N, &CODEP, OLDCA);
                                                                //   1065     %end
#line 1065 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
sw2_C_1:;
goto sw2_C_default;
} // End of block DUMPCODE at level 2
                                                                //   1066  
                                                                //   1067     %routine  DUMP ALL CODE
#line 1067 "regression-compile-tmp/vax-pass3.imp"
void DUMPALLCODE( void )
#line 1067 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1068        select input tank (object)
#line 1068 "regression-compile-tmp/vax-pass3.imp"
SELECTINPUTTANK(OBJECT);
                                                                //   1069        procs = 0
#line 1069 "regression-compile-tmp/vax-pass3.imp"
PROCS = 0;
                                                                //   1070        dump code (0, 0, 0)
#line 1070 "regression-compile-tmp/vax-pass3.imp"
DUMPCODE(0, 0, 0);
                                                                //   1071     %end
#line 1071 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DUMPALLCODE at level 2
                                                                //   1072  
                                                                //   1073     %routine  DEFINE PSECT (%record(psect fm) %name ps,
#line 1073 "regression-compile-tmp/vax-pass3.imp"
void DEFINEPSECT(  PSECTFM /*name*/*PS, int ALIGN, int FLAGS, int SIZE, _imp_string /*%string(31)*/ NAME )
#line 1073 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1074                             %integer  align, flags, size,
                                                                //   1075                             %string(31) name)
                                                                //   1076        %own %integer  psect no = 0
#line 1076 "regression-compile-tmp/vax-pass3.imp"
static int PSECTNO = 0;
                                                                //   1077        set work (obj gsd)
#line 1077 "regression-compile-tmp/vax-pass3.imp"
SETWORK(1);
                                                                //   1078        add (gsd psc);            ! P-sect def field
#line 1078 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1079        add (align);              ! Align (as power of 2)
#line 1079 "regression-compile-tmp/vax-pass3.imp"
ADD(ALIGN);
                                                                //   1080        addw (flags);             ! P-sect flags (rd,wrt,exe etc)
#line 1080 "regression-compile-tmp/vax-pass3.imp"
ADDW(FLAGS);
                                                                //   1081        addl (size);              ! Allocation in bytes
#line 1081 "regression-compile-tmp/vax-pass3.imp"
ADDL(SIZE);
                                                                //   1082        add string (0, name);     ! Ident
#line 1082 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, NAME);
                                                                //   1083        ps = 0
#line 1083 "regression-compile-tmp/vax-pass3.imp"
*PS = (PSECTFM){ 0 } /* Assign 0's to all fields of record */;
                                                                //   1084        ps_dump = 1;  ps_type = obj tir;  ps_bp = 1
#line 1084 "regression-compile-tmp/vax-pass3.imp"
PS->DUMP = 1;
#line 1084 "regression-compile-tmp/vax-pass3.imp"
PS->TYPE = 2;
#line 1084 "regression-compile-tmp/vax-pass3.imp"
PS->BP = 1;
                                                                //   1085        ps_max = size
#line 1085 "regression-compile-tmp/vax-pass3.imp"
PS->MAX = SIZE;
                                                                //   1086        ps_index = psect no
#line 1086 "regression-compile-tmp/vax-pass3.imp"
PS->INDEX = PSECTNO;
                                                                //   1087        psect no = psect no + 1
#line 1087 "regression-compile-tmp/vax-pass3.imp"
PSECTNO = (((int)(PSECTNO)) + (1));
                                                                //   1088        flush buff
#line 1088 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1089        buff == ps;  ps_pa = -999;  ! ensure SELECT happens...
#line 1089 "regression-compile-tmp/vax-pass3.imp"
BUFF = PS;
#line 1089 "regression-compile-tmp/vax-pass3.imp"
PS->PA = (-999);
                                                                //   1090        select (0)
#line 1090 "regression-compile-tmp/vax-pass3.imp"
SELECT(0);
                                                                //   1091     %end
#line 1091 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DEFINEPSECT at level 2
                                                                //   1092  
                                                                //   1093     %routine  DUMP MODULE HEADER
#line 1093 "regression-compile-tmp/vax-pass3.imp"
void DUMPMODULEHEADER( void )
#line 1093 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1094        %string(31) temp
#line 1094 "regression-compile-tmp/vax-pass3.imp"
_imp_string /*%string(31)*/ TEMP;
                                                                //   1095        select output (object file)
#line 1095 "regression-compile-tmp/vax-pass3.imp"
_imp_SELECTOUTPUT(1);
                                                                //   1096        set work (obj hdr);                   !header
#line 1096 "regression-compile-tmp/vax-pass3.imp"
SETWORK(0);
                                                                //   1097        add (hdr mhd);                        !module header record
#line 1097 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1098        add (0);                              !structure level
#line 1098 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1099        addw (max rec);                       !max record length
#line 1099 "regression-compile-tmp/vax-pass3.imp"
ADDW(512);
                                                                //   1100        add string (0, module);               !module name
#line 1100 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, MODULE);
                                                                //   1101        add string (0, "V01.00");             !module version
#line 1101 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, _imp_str_literal("V01.00"));
                                                                //   1102        temp = date . " " . time
#line 1102 "regression-compile-tmp/vax-pass3.imp"
TEMP = _imp_join((_imp_string)_imp_join((_imp_string)DATE(),(_imp_string)_imp_str_literal(" ")),(_imp_string)TIME());
                                                                //   1103        length(temp) = length(temp) - 3;      !remove milliseconds
#line 1103 "regression-compile-tmp/vax-pass3.imp"
*_imp_LENGTH(&TEMP) = ((*(int *)(_imp_LENGTH(&TEMP))) - (3));
                                                                //   1104        add string (1, temp);                 !creation date
#line 1104 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(1, TEMP);
                                                                //   1105        add string (1, "IMP is wonderful!");  !last patch!!
#line 1105 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(1, _imp_str_literal("IMP is wonderful!"));
                                                                //   1106        set work (obj hdr)
#line 1106 "regression-compile-tmp/vax-pass3.imp"
SETWORK(0);
                                                                //   1107        add (hdr lng);                        !language sub-header
#line 1107 "regression-compile-tmp/vax-pass3.imp"
ADD(1);
                                                                //   1108        add string (1, "VAX-11 Imp77 ".version)
#line 1108 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(1, _imp_join((_imp_string)_imp_str_literal("VAX-11 Imp77 "),(_imp_string)VERSION));
                                                                //   1109     %end
#line 1109 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DUMPMODULEHEADER at level 2
                                                                //   1110  
                                                                //   1111     %routine  DEFINE PSECTS
#line 1111 "regression-compile-tmp/vax-pass3.imp"
void DEFINEPSECTS( void )
#line 1111 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1112        define psect (codep, quad, code flags, code size, code name)
#line 1112 "regression-compile-tmp/vax-pass3.imp"
DEFINEPSECT(&CODEP, 3, 233, CODESIZE, CODENAME);
                                                                //   1113        define psect (glapp, quad, glap flags, glap size, glap name)
#line 1113 "regression-compile-tmp/vax-pass3.imp"
DEFINEPSECT(&GLAPP, 3, GLAPFLAGS, GLAPSIZE, GLAPNAME);
                                                                //   1114        %if diags # 0 %start
#line 1114 "regression-compile-tmp/vax-pass3.imp"
if (((DIAGS) == (0))) goto L_009d;
                                                                //   1115           define psect (diagp, quad, diag flags, diag size+2, diag name)
#line 1115 "regression-compile-tmp/vax-pass3.imp"
DEFINEPSECT(&DIAGP, 3, 169, (((int)(DIAGSIZE)) + (2)), DIAGNAME);
                                                                //   1116           ! add 2 to ensure 0 word at end...
                                                                //   1117        %else
#line 1117 "regression-compile-tmp/vax-pass3.imp"
goto L_009e;
#line 1117 "regression-compile-tmp/vax-pass3.imp"
L_009d:;
                                                                //   1118           diagp_dump = 0
#line 1118 "regression-compile-tmp/vax-pass3.imp"
DIAGP.DUMP = 0;
                                                                //   1119        %finish
#line 1119 "regression-compile-tmp/vax-pass3.imp"
L_009e:;
                                                                //   1120        %if ldump # 0 %start
#line 1120 "regression-compile-tmp/vax-pass3.imp"
if (((LDUMP) == (0))) goto L_009f;
                                                                //   1121           define psect (linep, quad, line flags, line size, line name)
#line 1121 "regression-compile-tmp/vax-pass3.imp"
DEFINEPSECT(&LINEP, 3, 169, LINESIZE, LINENAME);
                                                                //   1122           !fill in length word
                                                                //   1123           buff == linep;  select (0)
#line 1123 "regression-compile-tmp/vax-pass3.imp"
BUFF = &LINEP;
#line 1123 "regression-compile-tmp/vax-pass3.imp"
SELECT(0);
                                                                //   1124           start immed (2);  addw (line size);  end immed
#line 1124 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(2);
#line 1124 "regression-compile-tmp/vax-pass3.imp"
ADDW(LINESIZE);
#line 1124 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1125        %else
#line 1125 "regression-compile-tmp/vax-pass3.imp"
goto L_00a0;
#line 1125 "regression-compile-tmp/vax-pass3.imp"
L_009f:;
                                                                //   1126           linep_dump = 0
#line 1126 "regression-compile-tmp/vax-pass3.imp"
LINEP.DUMP = 0;
                                                                //   1127        %finish
#line 1127 "regression-compile-tmp/vax-pass3.imp"
L_00a0:;
                                                                //   1128     %end
#line 1128 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DEFINEPSECTS at level 2
                                                                //   1129  
                                                                //   1130     %routine  INITIALISE
#line 1130 "regression-compile-tmp/vax-pass3.imp"
void INITIALISE( void )
#line 1130 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1131        %integer  j
#line 1131 "regression-compile-tmp/vax-pass3.imp"
int J;
                                                                //   1132        ext used(j) = 0 %for j = 1, 1, max externals
#line 1132 "regression-compile-tmp/vax-pass3.imp"
J = 0;
if ((((400)-(1)) % (1)) != 0) _imp_signal(5,1,0,"Illegal cycle J = 1, 1, 400");
L_00a1:;
if (J == 400) goto L_00a2;
J += 1;
#line 1132 "regression-compile-tmp/vax-pass3.imp"
EXTUSED[(((int)(J)) - (1))] = 0;
#line 1132 "regression-compile-tmp/vax-pass3.imp"
goto L_00a1;
#line 1132 "regression-compile-tmp/vax-pass3.imp"
L_00a2:;
                                                                //   1133        select input tank (directives)
#line 1133 "regression-compile-tmp/vax-pass3.imp"
SELECTINPUTTANK(DIRECTIVES);
                                                                //   1134        refs = 0;  procs = 0;  def(0) = 0
#line 1134 "regression-compile-tmp/vax-pass3.imp"
REFS = 0;
#line 1134 "regression-compile-tmp/vax-pass3.imp"
PROCS = 0;
#line 1134 "regression-compile-tmp/vax-pass3.imp"
DEF[0] = (DEFFM){ 0 } /* Assign 0's to all fields of record */;
                                                                //   1135        ca == codep_pa;  ga == glapp_pa
#line 1135 "regression-compile-tmp/vax-pass3.imp"
CA = &CODEP.PA;
#line 1135 "regression-compile-tmp/vax-pass3.imp"
GA = &GLAPP.PA;
                                                                //   1136     %end
#line 1136 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block INITIALISE at level 2
                                                                //   1137  
                                                                //   1138     %routine  SPEC INIT PROC
#line 1138 "regression-compile-tmp/vax-pass3.imp"
void SPECINITPROC( void )
#line 1138 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1139        %return %if entry tag < 0 %or init = 0
#line 1139 "regression-compile-tmp/vax-pass3.imp"
if (((ENTRYTAG) < (0))) goto L_00a3;
#line 1139 "regression-compile-tmp/vax-pass3.imp"
if (((INIT) != (0))) goto L_00a4;
#line 1139 "regression-compile-tmp/vax-pass3.imp"
L_00a3:;
#line 1139 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
#line 1139 "regression-compile-tmp/vax-pass3.imp"
L_00a4:;
                                                                //   1140        set work (obj gsd)
#line 1140 "regression-compile-tmp/vax-pass3.imp"
SETWORK(1);
                                                                //   1141        add (gsd sym);             ! symbol entry
#line 1141 "regression-compile-tmp/vax-pass3.imp"
ADD(1);
                                                                //   1142        add (0);                   ! unknown data type
#line 1142 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1143        addw (2_1000);             ! flags
#line 1143 "regression-compile-tmp/vax-pass3.imp"
ADDW(8);
                                                                //   1144        add string (0, init proc); ! name
#line 1144 "regression-compile-tmp/vax-pass3.imp"
ADDSTRING(0, INITPROC);
                                                                //   1145        flush buff
#line 1145 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1146     %end
#line 1146 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block SPECINITPROC at level 2
                                                                //   1147  
                                                                //   1148     %routine  PLUG PSECTS
#line 1148 "regression-compile-tmp/vax-pass3.imp"
void PLUGPSECTS( void )
#line 1148 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1149        buff == glapp;  select (12);       ! plug things into gla
#line 1149 "regression-compile-tmp/vax-pass3.imp"
BUFF = &GLAPP;
#line 1149 "regression-compile-tmp/vax-pass3.imp"
SELECT(12);
                                                                //   1150        ! code psect base
                                                                //   1151        need (50)
#line 1151 "regression-compile-tmp/vax-pass3.imp"
NEED(50);
                                                                //   1152        stpb (codep, 4);     add (tir stold)
#line 1152 "regression-compile-tmp/vax-pass3.imp"
STPB(&CODEP, 4);
#line 1152 "regression-compile-tmp/vax-pass3.imp"
ADD(25);
                                                                //   1153        ga = ga + 4
#line 1153 "regression-compile-tmp/vax-pass3.imp"
*GA = ((*(int *)(GA)) + (4));
                                                                //   1154        ! diags psect base
                                                                //   1155        %if diags # 0 %start
#line 1155 "regression-compile-tmp/vax-pass3.imp"
if (((DIAGS) == (0))) goto L_00a5;
                                                                //   1156           stpb (diagp, 4)
#line 1156 "regression-compile-tmp/vax-pass3.imp"
STPB(&DIAGP, 4);
                                                                //   1157        %else
#line 1157 "regression-compile-tmp/vax-pass3.imp"
goto L_00a6;
#line 1157 "regression-compile-tmp/vax-pass3.imp"
L_00a5:;
                                                                //   1158           stak (4)
#line 1158 "regression-compile-tmp/vax-pass3.imp"
STAK(4);
                                                                //   1159        %finish
#line 1159 "regression-compile-tmp/vax-pass3.imp"
L_00a6:;
                                                                //   1160        add (tir stold)
#line 1160 "regression-compile-tmp/vax-pass3.imp"
ADD(25);
                                                                //   1161        ga = ga + 4
#line 1161 "regression-compile-tmp/vax-pass3.imp"
*GA = ((*(int *)(GA)) + (4));
                                                                //   1162        ! lines psect base
                                                                //   1163        %if ldump # 0 %start
#line 1163 "regression-compile-tmp/vax-pass3.imp"
if (((LDUMP) == (0))) goto L_00a7;
                                                                //   1164           stpb (linep, 4)
#line 1164 "regression-compile-tmp/vax-pass3.imp"
STPB(&LINEP, 4);
                                                                //   1165        %else
#line 1165 "regression-compile-tmp/vax-pass3.imp"
goto L_00a8;
#line 1165 "regression-compile-tmp/vax-pass3.imp"
L_00a7:;
                                                                //   1166           stak (4)
#line 1166 "regression-compile-tmp/vax-pass3.imp"
STAK(4);
                                                                //   1167        %finish
#line 1167 "regression-compile-tmp/vax-pass3.imp"
L_00a8:;
                                                                //   1168        add (tir stold)
#line 1168 "regression-compile-tmp/vax-pass3.imp"
ADD(25);
                                                                //   1169        ga = ga + 4
#line 1169 "regression-compile-tmp/vax-pass3.imp"
*GA = ((*(int *)(GA)) + (4));
                                                                //   1170        start immed (10)
#line 1170 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(10);
                                                                //   1171        addw (0);                         ! null string
#line 1171 "regression-compile-tmp/vax-pass3.imp"
ADDW(0);
                                                                //   1172        addl (proc tab(1)_diag ep)
#line 1172 "regression-compile-tmp/vax-pass3.imp"
ADDL(PROCTAB[0].DIAGEP);
                                                                //   1173        addl (event base)
#line 1173 "regression-compile-tmp/vax-pass3.imp"
ADDL(EVENTBASE);
                                                                //   1174        end immed
#line 1174 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1175        buff == codep;  select (evp)
#line 1175 "regression-compile-tmp/vax-pass3.imp"
BUFF = &CODEP;
#line 1175 "regression-compile-tmp/vax-pass3.imp"
SELECT(EVP);
                                                                //   1176        stak (0);  add (tir stol)
#line 1176 "regression-compile-tmp/vax-pass3.imp"
STAK(0);
#line 1176 "regression-compile-tmp/vax-pass3.imp"
ADD(22);
                                                                //   1177        %if diags # 0 %start
#line 1177 "regression-compile-tmp/vax-pass3.imp"
if (((DIAGS) == (0))) goto L_00a9;
                                                                //   1178           buff == diagp;  select (diag size)
#line 1178 "regression-compile-tmp/vax-pass3.imp"
BUFF = &DIAGP;
#line 1178 "regression-compile-tmp/vax-pass3.imp"
SELECT(DIAGSIZE);
                                                                //   1179           start immed (2);  addw (0);  end immed
#line 1179 "regression-compile-tmp/vax-pass3.imp"
STARTIMMED(2);
#line 1179 "regression-compile-tmp/vax-pass3.imp"
ADDW(0);
#line 1179 "regression-compile-tmp/vax-pass3.imp"
ENDIMMED();
                                                                //   1180        %finish
#line 1180 "regression-compile-tmp/vax-pass3.imp"
L_00a9:;
                                                                //   1181     %end
#line 1181 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block PLUGPSECTS at level 2
                                                                //   1182  
                                                                //   1183     %routine  DUMP EOM
#line 1183 "regression-compile-tmp/vax-pass3.imp"
void DUMPEOM( void )
#line 1183 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1184        set work (obj eom)
#line 1184 "regression-compile-tmp/vax-pass3.imp"
SETWORK(3);
                                                                //   1185        add (0);                            ! Successful compilation
#line 1185 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1186        %if entry tag >= 0 %start
#line 1186 "regression-compile-tmp/vax-pass3.imp"
if (((ENTRYTAG) < (0))) goto L_00aa;
                                                                //   1187           add (0)
#line 1187 "regression-compile-tmp/vax-pass3.imp"
ADD(0);
                                                                //   1188           addl (def(entry tag)_ca)
#line 1188 "regression-compile-tmp/vax-pass3.imp"
ADDL(DEF[ENTRYTAG].CA);
                                                                //   1189        %finish
#line 1189 "regression-compile-tmp/vax-pass3.imp"
L_00aa:;
                                                                //   1190        flush buff
#line 1190 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1191     %end
#line 1191 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block DUMPEOM at level 2
                                                                //   1192  
                                                                //   1193     %routine  FLUSH BUFFERS
#line 1193 "regression-compile-tmp/vax-pass3.imp"
void FLUSHBUFFERS( void )
#line 1193 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1194        buff == codep;  flush buff
#line 1194 "regression-compile-tmp/vax-pass3.imp"
BUFF = &CODEP;
#line 1194 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1195        buff == glapp;  flush buff
#line 1195 "regression-compile-tmp/vax-pass3.imp"
BUFF = &GLAPP;
#line 1195 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1196        buff == diagp;  flush buff
#line 1196 "regression-compile-tmp/vax-pass3.imp"
BUFF = &DIAGP;
#line 1196 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1197        buff == linep;  flush buff
#line 1197 "regression-compile-tmp/vax-pass3.imp"
BUFF = &LINEP;
#line 1197 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1198        buff == workp;  flush buff
#line 1198 "regression-compile-tmp/vax-pass3.imp"
BUFF = &WORKP;
#line 1198 "regression-compile-tmp/vax-pass3.imp"
FLUSHBUFF();
                                                                //   1199     %end
#line 1199 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block FLUSHBUFFERS at level 2
                                                                //   1200  
                                                                //   1201     %routine  REPORT INFO
#line 1201 "regression-compile-tmp/vax-pass3.imp"
void REPORTINFO( void )
#line 1201 "regression-compile-tmp/vax-pass3.imp"
{
                                                                //   1202        %integer  stream
#line 1202 "regression-compile-tmp/vax-pass3.imp"
int STREAM;
                                                                //   1203        %for stream = report, listing-report, listing %cycle
#line 1203 "regression-compile-tmp/vax-pass3.imp"
STREAM = (-2);
if ((((2)-(0)) % (2)) != 0) _imp_signal(5,1,0,"Illegal cycle STREAM = 0, 2, 2");
L_00ab:;
if (STREAM == 2) goto L_00ac;
STREAM += 2;
                                                                //   1204           %continue %if clog = 0 %and stream = report
#line 1204 "regression-compile-tmp/vax-pass3.imp"
if (((CLOG) != (0))) goto L_00ae;
#line 1204 "regression-compile-tmp/vax-pass3.imp"
if (((STREAM) != (0))) goto L_00ae;
#line 1204 "regression-compile-tmp/vax-pass3.imp"
goto L_00ad;
#line 1204 "regression-compile-tmp/vax-pass3.imp"
L_00ae:;
                                                                //   1205           select output (stream)
#line 1205 "regression-compile-tmp/vax-pass3.imp"
_imp_SELECTOUTPUT(STREAM);
                                                                //   1206           print string ("Code");            write (codep_max-4, 1)
#line 1206 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal("Code"));
#line 1206 "regression-compile-tmp/vax-pass3.imp"
_imp_WRITE((((int)(CODEP.MAX)) - (4)), 1);
                                                                //   1207           print string (" bytes  Glap");    write (glapp_max, 1)
#line 1207 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal(" bytes  Glap"));
#line 1207 "regression-compile-tmp/vax-pass3.imp"
_imp_WRITE(GLAPP.MAX, 1);
                                                                //   1208           print string (" bytes  Diags");   write (diagp_max+linep_max, 1)
#line 1208 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal(" bytes  Diags"));
#line 1208 "regression-compile-tmp/vax-pass3.imp"
_imp_WRITE((((int)(DIAGP.MAX)) + (LINEP.MAX)), 1);
                                                                //   1209           print string (" bytes   Total size")
#line 1209 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal(" bytes   Total size"));
                                                                //   1210           write (codep_max-4+glapp_max+diagp_max+linep_max, 1)
#line 1210 "regression-compile-tmp/vax-pass3.imp"
_imp_WRITE((((int)((((int)((((int)((((int)(CODEP.MAX)) - (4)))) + (GLAPP.MAX)))) + (DIAGP.MAX)))) + (LINEP.MAX)), 1);
                                                                //   1211           print string (" bytes");  newline
#line 1211 "regression-compile-tmp/vax-pass3.imp"
_imp_PRINTSTRING(_imp_str_literal(" bytes"));
#line 1211 "regression-compile-tmp/vax-pass3.imp"
_imp_NEWLINE();
                                                                //   1212        %repeat
#line 1212 "regression-compile-tmp/vax-pass3.imp"
L_00ad:;
#line 1212 "regression-compile-tmp/vax-pass3.imp"
goto L_00ab;
#line 1212 "regression-compile-tmp/vax-pass3.imp"
L_00ac:;
                                                                //   1213     %end
#line 1213 "regression-compile-tmp/vax-pass3.imp"
/* Remove %on %event handler here if present for this block */
return;
} // End of block REPORTINFO at level 2
/* Procedure parameter. probably no args given yet. */                                                                //   1214  
                                                                //   1215     %routine  TIME (%routine  R, %string(15) name)
#line 1215 "regression-compile-tmp/vax-pass3.imp"
void TIME( void R( 