A Read-Me-Datei zu ASSTRAN V05.2B Stand 08/2011 1 Aufruf von ASSTRAN . . . . . . . . . . . . . . . 2 2 COMPILE-Anweisung zur ASSTRAN-Steuerung . . . . . 3 2.1 Einschraenkungen . . . . . . . . . . . . . . . . 3 2.2 Erweiterungen . . . . . . . . . . . . . . . . . . 3 - 1 - A 1 Aufruf von ASSTRAN ==================== ASSTRAN wird aufgerufen mit /START-ASSTRAN (ASSTRAN) ,MONJV = *NONE / filename_1..54_without-generation-version ===== ,CPU-LIMIT = *JOB-REST / integer_1..32767 ========= - 2 - A 2 COMPILE-Anweisung zur ASSTRAN-Steuerung ========================================= Die Bedienung des ASSTRAN entspricht der des ASSEMBH V1.2. Die Erweiterungen werden in den Optionen COMPILER-ACTION, MO- DULE-LIBRARY und COMPILATION-SPACE vorgenommen. Im Listing werden bei Angabe von SOURCE-PRINT=WITH-OBJECT-CODE im Transformationsmodus sowohl die Assemblerquelle als auch der X86-Code in geeigneter Form ausgegeben. 2.1 Einschraenkungen ==================== Neben den Schnittstellenerweiterungen gibt es auch Einschraen- kungen gegenueber ASSEMBH V1.2: - Die Optionen MODULE-FORMAT=*OM und MODULE-LIBRARY=*OMF werden nicht unterstuetzt - Die Option MODE=F-ASSEMB-COMPATIBLE wird nicht unterstuetzt - Die Option COMPILATION-SPACE=SMALL wird nicht unterstuetzt. - Bei der Option LISTING=(OUTPUT=..) wird der Wert *SAVLST nicht unterstuetzt. - Mit ASSTRAN wird kein Stand-Alone-Listengenerator mitgelie- fert; daher ist auch die Funktionalitaet der Option COMPILATION-INFO nicht freigegeben. - Die Option CORRECTION-CYCLE=*YES wird nicht unterstuetzt. 2.2 Erweiterungen ================= COMPILER-ACTION = MODULE-GENERATION (...) / SYNTAX-CHECK (...) ================= MODULE-GENERATION (...) ================= ... ,DESTINATION-CODE = X86 (...) ==== X86 (...) OPTIMIZATION = NO / YES == ,CODE-TYPE = FOR-LARGE-PROGRAMS ================== /FOR-STD-PROGRAMS / OPTIMIZED ,PIC-CODE = YES === ,RUN-MODE = TPR(...) === TPR(...) DATASPACE-ACCESS=NO / YES(...) == YES(...) AR-USING= ALL / NONE / === list-pos(15):1,2,...,15 - 3 - A ,MODULE-FORMAT = LLM (...) === LLM (...) === ... wie im ASSEMBH V1.2 [4] , NO-GENERATION-WEIGHT=FATAL / SERIOUS / ===== SIGNIFICANT/ WARNING SYNTAX-CHECK(...) ... ,DESTINATION-CODE = X86 === MODULE-LIBRARY = SYS.PROG.LIB (...) / ============ filename_1..54_without-generation-version(...) COMPILATION-SPACE = STD / EXTENDED === LISTING=*PARAMETERS(...) SOURCE-PRINT = NO / WITH-OBJECT-CODE (...) / SOURCE-ONLY (...) / ================ ERRORS-ONLY(...) WITH-OBJECT-CODE(...) REGISTER-BOOK-INFO= YES/NO === ... .... - 4 - A Beschreibung: ============= COMPILER-ACTION = MODULE-GENERATION(...) DESTINATION-CODE = X86 (...) ========== Es wird X86-Code generiert. OPTIMIZATION = NO / YES == Angabe, ob befehlsuebergreifende Optimierungen durchzufuehren sind. CODE-TYPE = FOR-LARGE-PROGRAMS / FOR-STD-PROGRAMS / OPTIMIZED ================== Durch die Codeumsetzung von 390-Code nach X86-Code kommt es zu einer Codeexpansion. ASSTRAN setzt eine Heuristik ein, um die Codeexpansion abzuschaetzen. Die Erweiterung ist speziell fuer den HLL-Compileranschluss (COBOL, C, CPP) vorgesehen. FOR-LARGE-PROGRAMS: ASSTRAN geht davon aus, dass beliebig grosse Displacements entstehen koennen und generiert den entsprechenden Code. Dieser Code ist inperformant und auch fuer die meisten Anwendungen nicht notwendig. Mit den Optionen FOR-STD-PROGRAMS / OPTIMIZED gibt der Anwender ASSTRAN Hinweise, wie bei Vorwaertsspruengen, externen Spruengen und Datenzugriffen in CSECT's performanterer Code erzeugt werden kann. Falls ASSTRAN bei den Optionen FOR-STD-PROGRAMS / OPTIMIZED die Meldung ASR2510 mit dem Hinweis auf Y-Flags ausgibt, kann ASSTRAN keine optimalen Befehle fuer Spruenge/ Datenreferenzen generieren. In solchen Faellen muss die Option FOR-LARGE-PROGRAMS verwendet werden. RUN-MODE = TPR(...) === Codegenerierung fuer TPR-Programme DATASPACE-ACCESS= NO / YES(...) == Angabe, ob Code fuer Zugriffe auf Dataspaces generiert werden soll. YES(...) Bei YES wird Code fuer Module generiert, die auf einem Dataspace arbeiten koennen. Diese Option wird nur fuer FSC internen Gebrauch freigegeben. AR-USING= ALL / NONE / list-pos(15):1,2,...,15 === Nutzung weiterer Optimierungsmoeglichkeiten: Bekanntgabe von /390-Basisregistern mit denen ausschliesslich Source Zugriffe auf Dataspaces stattfinden sollen. ALL bezeichnet die /390-Basisregister 1 bis 15. - 5 - A MODULE-FORMAT = LLM (...) === Der Modul wird als LLM generiert. NO-GENERATION-WEIGHT=FATAL / SERIOUS / SIGNIFICANT / ===== WARNING Ab dem eingestellten Fehlergewicht wird kein Modul generiert (ein schon vorhandener Modul bleibt unveraendert). COMPILE-ACTION = SYNTAX-CHECK(...) DESTINATION-CODE= X86 === Es wird beim Syntax-Check in den Transformationsmodus verzweigt. Dies impliziert immer eine Ueberpruefung der Source auf Einhaltung der Einschraenkungen (sog. 'S-Regeln') und die Umsetzung von ORG-Anweisungen. MODULE-LIBRARY = SYS.PROG.LIB (...) ============ (ASSEMBH-Default *OMF wird von ASSTRAN nicht unterstuetzt). COMPILATION-SPACE = STD / EXTENDED === Bei der Angabe EXTENDED wird fuer die Optimierung bei der Ope- randen-Adressberechnung zusaetzlicher Speicher verwendet und der Compilierungsvorgang erheblich beschleunigt. LISTING = PARAMETERS (...) Steuerung der Listenausgabe SOURCE-PRINT = NO / WITH-OBJECT-CODE / SOURCE-ONLY / ERRORS-ONLY ================ Protokollierung des Quellprogramms WITH-OBJECT-CODE (...) Protokoll der Source-Zeile mit Objekt-Code REGISTER-BOOK-INFO= YES/NO === Diese Option wird ab ASSTRAN V5.2A unterstützt. Sie legt fest, ob Registerbuch-Informationen in das Listing ausgegeben werden sollen. - 7 -