home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / macro64 / internal_release_notes.txt < prev    next >
Text File  |  1993-10-22  |  33KB  |  3 lines

  1.  H                    ____________________________________________________C                    MACRO-64 Assembler for OpenVMS AXP (TM) Systems!                    Release Notes!                    November 1993G                    This document provides information about the latestA                    release of the MACRO-64 Assembler for OpenVMSE                    AXP Systems. It includes information on features,3                    changes, and resolved problems.C                    Version V1.1                  Build Number: 079/                    DIGITAL-INTERNAL FIELD TEST0                    Revision/Update Information:H                    Software Version:             MACRO-64 Assembler forE                                                  OpenVMS AXP Systems=                                                  Version 1.1B                    Date:                         October 22, 19931                    Digital Equipment Corporation*                    Maynard, Massachusetts  N              ________________________________________________________________              1993I              ⌐ Digital Equipment Corporation 1993.  All rights reserved.?              The following are trademarks of Digital Equipment              Corporation:H              Alpha AXP       AXP             DEC                OpenVMS>              VAX DOCUMENT    The AXP logo    The DIGITAL logo:                             Digital Equipment Corporation7                                Proprietary InformationG              This information is proprietary to Digital and is subject@              to the terms and conditions of your non-disclosure              agreement.I              This document was prepared using VAX DOCUMENT, Version 2.1.  F     _________________________________________________________________F                                                              ContentsF     Preface...................................................      v!     1  New and Modified FeaturesF           1.1   $CALL Improvement with 0/A Stack Argument.....    1-1     2  Resolved ProblemsF           2.1   DEBUG Scrolling of Repeat Blocks..............    2-1F           2.2   DEBUG Information for Local Data Labels.......    2-1F           2.3   More Information Needed when Out of Memory....    2-1F           2.4   HELP MACRO/ALPHA_AXP Doesn't Work.............    2-27           2.5   HELP MACRO/ALPHA Broken on OpenVMS AXPF                 V1.5-FT3 and V1.5-FT4.........................    2-2F           2.6   MACZERO Diagnostic Anomalies..................    2-3:           2.7   Superfluous Argument vs. Scratch RegisterF                 Conflict......................................    2-3F           2.8   No Diagnostics in /PREPROCESS_ONLY Mode.......    2-3F           2.9   Recursive Lexical String Symbol Causes Hang...    2-4F           2.10  No ADDTRUNC Diagnostic with .SIGNED_xxxx......    2-4F           2.11  CALL/LDQ_A/LDQ_NOP............................    2-49           2.12  DEBUG Cannot Examine Registers Outside aF                 Routine.......................................    2-5F           2.13  $ABS$ Psect Starts at Offset 4................    2-5F           2.14  Two Diagnostics for Missing Closing Quote.....    2-57           2.15  Machine Code Display of Floating TypesF                 Regression....................................    2-5F           2.16  $RETURN Needs .BEGIN_EXACT/.END_EXACT.........    2-5F           2.17  .SHOW BINARY Is Too Strong....................    2-6F           2.18  /ALIGN=CODE Doesn't Align Entry Points........    2-6F           2.19  Entry in Exact Range Crashes MACRO-64.........    2-6F           2.20  .BEGIN_EXACT and Automatic Alignment..........    2-6F                                                                   iii  8              2.21  .INSTRUCTION, MIX Psects and ForwardI                    References....................................    2-6;              2.22  .DEFINE_xREG Directive Sometimes CausesI                    Assembler Hang................................    2-7I              2.23  $CALL Passes Relocatable 0 as Absolute 0......    2-7?              2.24  Multiple Assembly Units on a Single CommandI                    Line..........................................    2-7I              2.25  /DEBUG=TRACEBACK Default......................    2-7?              2.26  $OPDEF Instructions Use Excessive Memory atI                    Assembly Time.................................    2-7I              2.27  Difference between VAX and AXP Hosts..........    2-8=              2.28  External BSR Target Label in Machine-CodeI                    Listing.......................................    2-86              2.29  Large Lexical String Symbols CauseI                    Assertion.....................................    2-8I              2.30  Erroneous Program Causes Assembler Crash......    2-8*        3  Known Problems and RestrictionsI              3.1   .BLKx Directives in Machine-Code Listing......    3-1I              3.2   Instructions for MIX Psects...................    3-1
  2.         iv  I        _________________________________________________________________I                                                                  Preface        IntroductionE              The MACRO-64 Assembler for OpenVMS AXP Systems provides@              a macro assembly language for the native Alpha AXP@              instruction set. MACRO-64 is available as a nativeE              assembler on the OpenVMS AXP Operating System. MACRO-64B              is also available as a cross assembler hosted on theI              OpenVMS VAX operating system internally to Digital softwareH              development groups, and for a limited time to customers asH              part of an AXP cross-tool kit offered by Digital Services.        Reporting ProblemsI              Please report all problems in the MACRO-64 notes conference)              11SRUS::ASM$NOTES:ASM.NOTE.        Intended Audience?              This document is intended for system managers andA              programmers who need to be informed about features,-              changes, and resolved problems.        Document StructureC              This document is divided into the following chapters:D              o  Chapter 1, New and Modified Features, describes newI                 features or implementations since MACRO-64 T1.1-048, the4                 MACRO-64 V1.1 Field Test 1 release.A              o  Chapter 2, Resolved Problems, describes problems)                 resolved since T1.1-048.I                                                                        v  F              o  Chapter 3, Known Problems and Restrictions, describesD                 problems and restrictions that the development teamF                 is aware of, but has not resolved at the time of this                 release.        Associated DocumentsI              For more information on MACRO-64, see the following manuals'              in the documentation set:E              o  MACRO-64 Assembler for OpenVMS AXP Systems Reference                 ManualH              o  MACRO-64 Assembler for OpenVMS AXP Systems Installation                 GuideD              For more information on programming in the OpenVMS AXPD              environment and on the Alpha AXP Architecture, see the              following:)              1. OpenVMS Calling Standard4              2. Alpha Architecture Reference Manual,              3. Alpha Architecture Handbook.              4. Alpha System Reference Manual
  3.         vi          ConventionsH              The following conventions are used in these release notes:F              Ctrl/x      A sequence such as Ctrl/x indicates that youG                          must hold down the key labeled Ctrl while youH                          press another key or a pointing device button.F              <Return>    In examples, a key name is shown enclosed inG                          a box to indicate that you press a key on theH                          keyboard. (In text, a key name is not enclosed$                          in a box.)F               . . .      In examples, a horizontal ellipsis indicates=                          one of the following possibilities:I                          o  Additional optional arguments in a statement/                             have been omitted.H                          o  The preceding item or items can be repeated/                             one or more times.D                          o  Additional parameters, values, or other8                             information can be entered.G                          A vertical ellipsis indicates the omission ofF                  .       items from a code example or command format;D                  .       the items are omitted because they are notA                  .       important to the topic being discussed.H              []          In format descriptions, brackets indicate thatE                          whatever is enclosed within the brackets isD                          optional; you can select none, one, or allD                          of the choices. Brackets are not, however,I                          optional in the syntax of a directory name in a-                          file specification.C              {}          In format descriptions, braces surround aE                          required choice of options; you must choose4                          one of the options listed.C              boldface    Boldface text represents the introductionF              text        of a new term or the name of an argument, an1                          attribute, or a reason.G                          Boldface text is also used to show user input9                          in online versions of the book.I                                                                      vii  H              UPPERCASE   Uppercase letters indicate that you must enterF              TEXT        a command (for example, enter OPEN/READ), orG                          they indicate the name of a routine, the nameH                          of a file, the name of a file protection code,E                          or the abbreviation for a system privilege.B              -           Hyphens in coding examples indicate thatA                          additional arguments to the request are<                          provided on the line that follows.I              numbers     Unless otherwise noted, all numbers in the textI                          are assumed to be decimal. Non-decimal radices-F                          binary, octal, or hexadecimal-are explicitly$                          indicated.         viii  I                                                                        1I        _________________________________________________________________I                                                New and Modified FeaturesE              This chapter describes new features and feature changesG              that have been added since the MACRO-64 T1.1-048 release.5        1.1 $CALL Improvement with 0/A Stack ArgumentH              With previous versions of MACRO-64, the $CALL macro passedF              the address zero as a stack argument using the following              sequence:2                      LDA     SCRATCH_REG, 0 (R31)1                      STQ     SCRATCH_REG, x (SP)4              A more optimal sequence is as follows:)                      STQ     R31, x (SP)C              This optimization has been incorporated into MACRO-64              V1.1-079.I                                            New and Modified Features 1-1  I                                                                        2I        _________________________________________________________________I                                                        Resolved ProblemsF              This chapter lists problems corrected since the T1.1-048              release.,        2.1 DEBUG Scrolling of Repeat BlocksE              The debugger does not scroll the source window within aI              repeat block definition when you are executing instructionsH              in a repeat block. Instead, the debugger treats the entire1              repeat block as a single statement.E              This problem has been corrected with MACRO-64 V1.1-079.3        2.2 DEBUG Information for Local Data LabelsE              No local symbol debug information is generated for someC              local data labels having a runtime address bound to aE              storage location whose storage is allocated with one of#              the .BLKx directives.E              This problem has been corrected with MACRO-64 V1.1-079.6        2.3 More Information Needed when Out of MemoryE              If the assembler runs out of virtual memory with a veryE              large assembly unit, the assembler aborts with a "%LIB-G              F-INSVIRMEM, insufficient virtual memory" diagnostic. TheE              assembler should provide some indication of what it was5              trying to do when the failure occurred.G              This problem has been addressed with MACRO-64 V1.1-079 as              follows:I                                                    Resolved Problems 2-1          Resolved Problems6        2.3 More Information Needed when Out of MemoryD              When the assembler runs out of memory, it includes theE              total number of lines assembled up to that point in theD              INSVIRMEM diagnostic message. The assembler suppressesE              generation of an object module. If you specify /LIST onE              the command line (or you default the /LIST qualifier inG              batch mode), the assembler reclaims some of its internal,F              dynamic, heap memory that is normally needed for object-H              module generation. The assembler then attempts to generateB              a listing file. If it succeeds, the last line in theH              listing file is the line the assembler was processing whenH              it ran out of virtual memory. Note that it is unlikely butE              possible that the assembler may again run out of memoryI              when it attempts to produce the listing file. In that case,D              the assembler issues a LASTGASP diagnostic message and7              aborts without generating a listing file.-        2.4 HELP MACRO/ALPHA_AXP Doesn't WorkF              HELP MACRO/ALPHA_AXP doesn't work. You must instead type              HELP MACRO/ALPHA.E              This problem has been corrected with MACRO-64 V1.1-079.H        2.5 HELP MACRO/ALPHA Broken on OpenVMS AXP V1.5-FT3 and V1.5-FT4E              If you type "HELP MACRO/ALPHA" on FT3 or FT4 of OpenVMSG              AXP V1.5 after installing MACRO-64, two help sections areH              displayed for /ALPHA and help leaves you at the top of theH              help-library hierarchy. To navigate the MACRO-64 help, youF              must type "HELP MACRO/ALPHA topic", where "topic" is oneG              of the MACRO-64 topics displayed when you type HELP MACRO              /ALPHA.C              This problem lies with MACRO-64. However, OpenVMS AXPD              V1.5-SSB has been changed such that "HELP MACRO/ALPHA"8              works correctly after installing MACRO-64.E              This problem has been corrected with MACRO-64 V1.1-079.         2-2 Resolved Problemst   I                                                        Resolved Problems I                                         2.6 MACZERO Diagnostic Anomalies (        2.6 MACZERO Diagnostic Anomalies@              When the first numeric expression to a .IF or .IIF@              directive is invalid, MACRO-64 evaluates it twice.C              The second expression, if present, is erroneously not D              evaluated. The .IF directive results in two diagnosticH              messages against the first expression, the second of whichF              is redundant. Moreover, the diagnostic point of interestD              that is cited is the token beyond the end of the firstF              expression. With .IIF EQ, .IIF LE, and .IIF GE, MACRO-64H              attempts to interpret the first expression as a statement,I              possibly resulting in additional and superfluous diagnostic              messages. E              This problem has been corrected with MACRO-64 V1.1-079. >        2.7 Superfluous Argument vs. Scratch Register ConflictD              Currently, $CALL issues a diagnostic if you specify anB              argument-source or argument-target register that youA              also specify or default as a scratch register. (The D              default scratch registers are R0, R1, F0, and F1.) TheE              diagnostic is legitimate if $CALL actually needs to use F              the scratch register to load an argument from memory andI              subsequently store it on the stack. However, the diagnosticnG              is superfluous if $CALL does not need a scratch register. E              This problem has been corrected with MACRO-64 V1.1-079.3        2.8 No Diagnostics in /PREPROCESS_ONLY Mode_@              In /PREPROCESS_ONLY mode, MACRO-64 performs normalF              syntactic and semantic processing of your source programF              after the preprocessing stage in order to process normalC              symbol definitions and correctly maintain the current D              location counter ("."). However, most diagnostics thatI              might be produced in these latter assembly stages would notBG              be meaningful to you in /PREPROCESS_ONLY mode. Therefore, B              when MACRO-64 operates in /PREPROCESS_ONLY mode, theD              intended behavior is that all diagnostics arising fromF              the latter assembly stages be suppressed. Unfortunately,E              preprocessing diagnostics, which would be meaningful inn9              /PREPROCESS_ONLY mode, are also suppressed.SE              This problem has been corrected with MACRO-64 V1.1-079..I                                                    Resolved Problems 2-3R O S        Resolved Problems 7        2.9 Recursive Lexical String Symbol Causes Hang 7        2.9 Recursive Lexical String Symbol Causes HangxF              The following construct causes the assembler to loop and:              eventually abort for lack of virtual memory:,                  NOTHING = "%NOTHING% MORE"$                  .print "%NOTHING%"C              In fact, this is an error in the source program. ThisI              construct directs the assembler to do something forever-the G              lexical string-symbol definition is infinitely recursive.gG              This problem has been addressed with MACRO-64 V1.1-079 asNG              follows: The assembler now issues a diagnostic message ifNH              you attempt to process more than 5000 lexical operators in!              a single statement. 5        2.10 No ADDTRUNC Diagnostic with .SIGNED_xxxxRI              The assembler does not issue an ADDTRUNC diagnostic message.H              for attempts to store a relocatable address value with theI              .SIGNED_BYTE and .SIGNED_WORD directives. It should issue aI!              warning diagnostic. E              This problem has been corrected with MACRO-64 V1.1-079.         2.11 CALL/LDQ_A/LDQ_NOPtH              Previous versions of MACRO-64 accept the following pseudo-              ops:                  CALL                  LDQ_Ae                  LDQ_NOP H              These pseudo-ops do nothing useful and are likely to cause%              the assembler to crash..H              These pseudo-ops have been removed from MACRO-64 V1.1-079.        2-4 Resolved ProblemsI r iI                                                        Resolved Problems.I                    2.12 DEBUG Cannot Examine Registers Outside a RoutineH=        2.12 DEBUG Cannot Examine Registers Outside a RoutineeF              When the symbolic debugger doesn't know what routine youH              are in, you cannot examine registers as you might normallyC              do. If you try, you receive the following diagnostic:.                  DBG> ex r0J                  %DEBUG-W-SYMNOTACT, non-static variable '.MAIN.\MAIN\R0'                  is not active E              This problem has been corrected with MACRO-64 V1.1-079. +        2.13 $ABS$ Psect Starts at Offset 4.G              The $ABS$ psect erroneously starts at offset 4. It should                start at offset 0.E              This problem has been corrected with MACRO-64 V1.1-079._6        2.14 Two Diagnostics for Missing Closing QuoteG              If you omit a closing quote on a string literal, MACRO-64AC              issues two diagnostic messages concerning the missinga.              quote. It should issue only one.E              This problem has been corrected with MACRO-64 V1.1-079. >        2.15 Machine Code Display of Floating Types RegressionH              In the machine-code section of the listing, floating-pointC              initial data values are not shown correctly. However, F              floating-point initial values are shown correctly in the?              left margin in the source section of the listing.iE              This problem has been corrected with MACRO-64 V1.1-079.b2        2.16 $RETURN Needs .BEGIN_EXACT/.END_EXACTH              The $ROUTINE macro correctly generates the prologue withinG              a .BEGIN_EXACT/.END_EXACT block. This prevents disruptionmG              by the optimizer of the critical sequence of actions thatrF              must occur during prologue processing. $RETURN should doD              likewise for the epilogue, but in previous versions of$              MACRO-64, it does not.E              This problem has been corrected with MACRO-64 V1.1-079. I                                                    Resolved Problems 2-5             Resolved Problemsd'        2.17 .SHOW BINARY Is Too Strongl'        2.17 .SHOW BINARY Is Too Strong E              .SHOW BINARY and /SHOW=BINARY cause all lines that emitD              binary to be included in the listing. They should onlyF              affect macro expansion lines, and they show not overrideH              .NLIST (listing-control counter) and .NOSHOW CONDITIONALS.E              This problem has been corrected with MACRO-64 V1.1-079. 3        2.18 /ALIGN=CODE Doesn't Align Entry Points I              The .ENABLE ALIGN_CODE and /ALIGN=CODE options do not align6G              procedure entry points. Code labels that are specified asH              the second argument to the .PROCEDURE_DESCRIPTOR directiveD              should be aligned to at least a quadword boundary when2              automatic code alignment is enabled.E              This problem has been corrected with MACRO-64 V1.1-079.2        2.19 Entry in Exact Range Crashes MACRO-64E              Previous versions of MACRO-64 crash when the code entrycC              point to a procedure (a label specified as the secondE              argument to the .PROCEDURE_DESCRIPTOR directive) occurs G              within an exact range delimited with the .BEGIN_EXACT and $              .END_EXACT directives.E              This problem has been corrected with MACRO-64 V1.1-079. 1        2.20 .BEGIN_EXACT and Automatic Alignmento@              In previous versions of MACRO-64, the .BEGIN_EXACTD              directive causes automatic data alignment (if enabled)I              to be suppressed in psects with the MIX attribute. However,kD              .BEGIN_EXACT does not affect automatic code alignment.G              The .BEGIN_EXACT directive has been changed with MACRO-64.E              V1.1-079 such that it does not affect automatic data or               code alignment.i<        2.21 .INSTRUCTION, MIX Psects and Forward ReferencesI              The .INSTRUCTION directive sets the high 6-bits (the opcodeH              field) to zero with a forward reference in psects with theF              MIX attribute. The .INSTRUCTION directive in psects withF              the NOMIX and EXE attributes and use of the .INSTRUCTIONH              directive with references to previously-defined labels and%              symbols are unaffected.         2-6 Resolved Problemsm c  I                                                        Resolved ProblemssI                     2.21 .INSTRUCTION, MIX Psects and Forward ReferencesuE              This problem has been corrected with MACRO-64 V1.1-079.tC        2.22 .DEFINE_xREG Directive Sometimes Causes Assembler HangeH              Under certain circumstances, previous versions of MACRO-64G              loop infinitely while assembling programs that use either I              the .DEFINE_IREG or .DEFINE_FREG directives. Eventually the <              assembler aborts with an INSVIRMEM diagnostic.E              This problem has been corrected with MACRO-64 V1.1-079. 5        2.23 $CALL Passes Relocatable 0 as Absolute 0 >              With MACRO-64 T1.1-050, if you attempt to pass aB              relocatable address with $CALL using the /A argumentD              qualifier, and the offset portion of relocatable valueD              is zero (as in a label at the start of a psect), $CALL;              incorrectly passes the absolute address zero. E              This problem has been corrected with MACRO-64 V1.1-079. =        2.24 Multiple Assembly Units on a Single Command LineG              Attempting to process multiple assembly units on a singleeH              command line causes previous versions of MACRO-64 to abort&              or behave unpredictably.E              This problem has been corrected with MACRO-64 V1.1-079.,%        2.25 /DEBUG=TRACEBACK Default D              Previous versions of MACRO-64 do not provide traceback:              information in the object module by default.I              This problem has been corrected with MACRO-64 V1.1-079. The .              default is now /DEBUG=TRACEBACK.F        2.26 $OPDEF Instructions Use Excessive Memory at Assembly TimeH              The macro encoding of instructions defined with the $OPDEFC              macro uses an excessive amount of virtual memory with-,              previous versions of MACRO-64.G              The amount of memory required to use instructions defined H              with the $OPDEF macros has been significantly reduced with%              with MACRO-64 V1.1-079. I                                                    Resolved Problems 2-7             Resolved Problems 1        2.27 Difference between VAX and AXP Hostss1        2.27 Difference between VAX and AXP Hosts H              On VAX hosts, assigning the current location counter (".")H              within an absolute psect to a 64-bit symbol causes the 32-I              bit value of the current location counter to zero extend inhH              the upper 32 bits. On AXP hosts, the value sign extends in               the upper 32 bits.G              MACRO-64 V1.1-079 has been changed such that both VAX and(9              AXP hosts zero extend in the upper 32 bits.:>        2.28 External BSR Target Label in Machine-Code ListingH              Previous versions of MACRO-64 do not show the target labelF              for an intermodule or inter-psect BSR instruction in the2              machine-code section of the listing.E              This problem has been corrected with MACRO-64 V1.1-079. 9        2.29 Large Lexical String Symbols Cause Assertion_E              With previous versions of MACRO-64 on AXP hosts, if you D              attempt to define a lexical string symbol in excess ofD              1,073,741,824 bytes in length, either the GEM compilerG              backend issues an assertion diagnostic or the behavior isr              unpredictable.E              This problem has been corrected with MACRO-64 V1.1-079.iD              Such an attempt now results in an INSVIRMEM diagnostic              message.5        2.30 Erroneous Program Causes Assembler Crash G              Certain error conditions within a data directive, such as I              an expression that is too complex to evaluate at link time,oH              can sometimes cause previous versions of MACRO-64 to crashI              after MACRO-64 has issued the proper diagnostic message fore-              the triggering error condition. E              This problem has been corrected with MACRO-64 V1.1-079.         2-8 Resolved Problemso I rI                                                                        3iI        _________________________________________________________________"I                                          Known Problems and RestrictionshI              This chapter describes known problems and restrictions that ;              are not resolved at the time of this release. 4        3.1 .BLKx Directives in Machine-Code ListingD              The .BLKx directives do not appear in the machine-codeA              listing with /MACHINE_CODE. However, the storage iseF              correctly allocated and the offsets within the psect are#              correctly maintained.r'        3.2 Instructions for MIX Psects G              Instructions which occur in psects with the MIX attribute G              appear in the machine listing as initial value specifiers &              for the .LONG directive.I                                      Known Problems and Restrictions 3-1t