!* modified 21/08/85 !* %ownstring(31) Versiontext="Fortran77 Compiler Version 0.1" %owninteger Report=1 %owninteger Decode %owninteger Language %owninteger Nextprocid !* %constinteger IMP = 1 %constinteger FORTRAN = 2 %constinteger CCOMP = 11 %constinteger PASCAL = 14 !* !*********************************************************************** !* Exports * !*********************************************************************** !* %routinespec Einitialise(%integer Lang, Avertext, Astackca, Aglaca, Options) %routinespec Eterminate(%integer adareasizes) %routinespec Ecommon(%integer area, %stringname Name) %routinespec Eendcommon(%integer area, Length) %routinespec Elinestart(%integer lineno) %routinespec Elinedecode %routinespec Emonon %routinespec Emonoff %routinespec Efaulty %integerfnspec Estkmarker %routinespec Esetmarker(%integer Markerid, New Value) %integerfnspec Eswapmode !* %routinespec Estklit(%integer Val) %routinespec Estkconst(%integer Len, Ad) %routinespec Estkdir(%integer Area, Offset, Adid, Bytes) %routinespec Estkind(%integer Area, Offset, Adid, Bytes) %routinespec Estkglobal(%integer Level, Offset, Adid, Bytes) %routinespec Estkglobalind(%integer Level, Offset, Adid, Bytes) %routinespec Estkpar(%integer Level, Offset, Adid, Bytes) %routinespec Estkparind(%integer Level, Offset, Adid, Bytes) %routinespec Estkresult(%integer Class, Type, Bytes) %routinespec Erefer(%integer Offset, Bytes) %routinespec Epromote(%integer Level) %routinespec Estkaddr(%integer Area, Offset, Adid, Bytes) %routinespec Estkgaddr(%integer Area, Offset, Adid, Bytes) %routinespec Estkpaddr(%integer Area, Offset, Adid, Bytes) !* %routinespec Elabel(%integer id) %routinespec Eboundlab(%integer id) %routinespec Ediscardlabel(%integer id) %routinespec Ejump(%integer Opcode, Labelid) %routinespec Etwjump(%integer Opcode, Lab1, Lab2, Lab3) %routinespec Eswitch(%integer Lower, Upper, Switchid, Errlabid, %integername SSTad) %routinespec EswitchJump(%integer Switchid) %routinespec EfswitchJump(%integer Switchid) %routinespec Eswitchentry(%integer Switchid, Entry) %routinespec Eswitchdef(%integer Switchid) %routinespec EswitchLabel(%integer Switchid, Entry, Labelid) !* %routinespec Ed1(%integer area, Disp, Val) %routinespec Ed2(%integer area, Disp, Val) %routinespec Ed4(%integer area, Disp, Val) %routinespec Edbytes(%integer area, Disp, len, ad) %routinespec Edpattern(%integer area, Disp, ncopies, len, ad) %routinespec Efix(%integer area, disp, tgtarea, tgtdisp) !* %integerfnspec EXname(%integer type, %string(255)%name Xref) %routinespec Eprecall(%integer Id) %routinespec Ecall(%integer Id, Numpars, Paramsize) %routinespec Eprocref(%integer Id, Level) %routinespec Esave(%integer Asave, %integername Key) %routinespec Erestore(%integer Asave, Key, Existing) !* %integerfnspec Enextproc %routinespec Eproc(%stringname Name, %integer Props, Numpars, Paramsize, Astacklen, %integername Id) %routinespec Eprocend(%integer Localsize, Diagdisp, Astacklen) %routinespec Eentry(%integer Index,Numpars,Paramsize, Localsize, Diagdisp, %stringname Name) !* %routinespec Edataentry(%integer Area, Offset, Length, %stringname Name) %routinespec Edataref(%integer Area, Offset, Length, %stringname Name) !* %routinespec Eop(%integer Opcode) %routinespec Ef77op(%integer Opcode) %routinespec Epasop(%integer Opcode) %routinespec Eccop(%integer Opcode) !* !* !*********************************************************************** !* Imports * !*********************************************************************** !* !%include "ercs12:ib4_specs" !%include "cfort_xaspecs" !%include "cfort_ecodes" !%include "cfort_xamnem" ! !************************************************************************ !* * !* G.E.Millard * !* ECODES 10/08/85 * !* * !************************************************************************ ! {00} %constinteger HALT = 0 ! !--------------------------------------- 32-bit (Etos) ---------------- ! {01} %constinteger IADD = 1 { (Etos-1) + (Etos) => (Etos) } {02} %constinteger ISUB = 2 { (Etos-1) - (Etos) => (Etos) } {03} %constinteger IMULT = 3 { (Etos-1) * (Etos) => (Etos) } {04} %constinteger IDIV = 4 { (Etos-1) / (Etos) => (Etos) } {05} %constinteger INEG = 5 { - (Etos) => (Etos) } {06} %constinteger IABS = 6 { abs( (Etos) ) => (Etos) } {07} %constinteger IREM = 7 { remainder from } { (Etos-1) / (Etos)=> (Etos) } ! {08} %constinteger IAND = 8 { (Etos-1) & (Etos) => (Etos) } {09} %constinteger IOR = 9 { (Etos-1) ! (Etos) => (Etos) } {0A} %constinteger INOT = 10 { ~ (Etos) => (Etos) } {0B} %constinteger IXOR = 11 { (Etos-1) !! (Etos) => (Etos) } {0C} %constinteger ISHLL = 12 { (Etos-1) << (Etos) => (Etos) } {0D} %constinteger ISHRL = 13 { (Etos-1) >> (Etos) => (Etos) } {0E} %constinteger ISHLA = 14 { arithmetic left shift } {0F} %constinteger ISHRA = 15 { arithmetic right shift } ! {10} %constinteger IGT = 16 { if } {11} %constinteger ILT = 17 { (Etos-1) (Etos) } {12} %constinteger IEQ = 18 { then } {13} %constinteger INE = 19 { true (1) => (Etos) } {14} %constinteger IGE = 20 { else } {15} %constinteger ILE = 21 { false (0) => (Etos) } ! {18} %constinteger JIGT = 24 { if } {19} %constinteger JILT = 25 { (Etos-1) (Etos) } {1A} %constinteger JIEQ = 26 { then } {1B} %constinteger JINE = 27 { ->