____________________________________________________ MACRO-64 Assembler for OpenVMS AXP (TM) Systems Release Notes November 1997 This document provides information about the latest release of the MACRO-64 Assembler for OpenVMS AXP Systems. It includes information on features, changes, and resolved problems. Version V1.2 Build Number: 108 Revision/Update Information: Software Version: MACRO-64 Assembler for OpenVMS AXP Systems Version 1.2 Date: December 8, 1997 Digital Equipment Corporation Maynard, Massachusetts ________________________________________________________________ 1997 © Digital Equipment Corporation 1997. All rights reserved. The following are trademarks of Digital Equipment Corporation: Alpha AXP AXP DEC OpenVMS VAX DOCUMENT The DIGITAL logo Digital Equipment Corporation Proprietary Information This information is proprietary to Digital and is subject to the terms and conditions of your non-disclosure agreement. This document was prepared using VAX DOCUMENT Version 2.1. _________________________________________________________________ Contents Preface................................................... v 1 New and Modified Features 1.1 Pre-$OPDEF'd Instructions Made Intrinsic...... 1-1 1.2 Listing File Format Changes................... 1-1 1.3 /ARCHITECTURE Qualifier....................... 1-1 1.4 New Instructions.............................. 1-3 2 Resolved Problems 2.1 /ALIGN=CODE doesn't align entry points........ 2-1 2.2 .INSTRUCTION with forward reference in MIX psect......................................... 2-1 2.3 Forward references to .RESTOREd local blocks cause internal error.......................... 2-1 2.4 Erroneously included CVTQF and CVTQG qualifiers.................................... 2-1 2.5 Erroneously omitted CVTTQ qualifiers.......... 2-2 3 Known Problems and Restrictions 3.1 .BLKx directives in machine-code listing...... 3-1 3.2 Instructions for MIX psects................... 3-1 3.3 Backwards branch to external label can cause internal error................................ 3-1 iii _________________________________________________________________ Preface Introduction 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 native assembler on the OpenVMS AXP Operating System. Reporting Problems Please report all problems to Digital as instructed in your support contract or warranty agreement, as appropriate. Intended Audience This document is intended for system managers and programmers who need to be informed about features, changes, and resolved problems. Document Structure This document is divided into the following chapters: o Chapter 1, New and Modified Features, describes new features or implementations since MACRO-64 V1.1. o Chapter 2, Resolved Problems, describes problems resolved since V1.1. o Chapter 3, Known Problems and Restrictions, describes problems and restrictions that the development team is aware of, but has not resolved at the time of this release. v Associated Documents For more information on MACRO-64, see the following books in the documentation set: o MACRO-64 Assembler for OpenVMS AXP Systems Reference Manual o MACRO-64 Assembler for OpenVMS AXP Systems Installation Guide For more information on programming in the OpenVMS AXP environment and on the Alpha AXP Architecture, see the following: o OpenVMS Calling Standard o Alpha Architecture Reference Manual o Alpha Architecture Handbook vi Conventions The following conventions are used in these release notes: Ctrl/x A sequence such as Ctrl/x indicates that you must hold down the key labeled Ctrl while you press another key or a pointing device button. In examples, a key name is shown enclosed in a box to indicate that you press a key on the keyboard. (In text, a key name is not enclosed in a box.) . . . In examples, a horizontal ellipsis indicates one of the following possibilities: o Additional optional arguments in a statement have been omitted. o The preceding item or items can be repeated one or more times. o Additional parameters, values, or other information can be entered. A vertical ellipsis indicates the omission of . items from a code example or command format; . the items are omitted because they are not . important to the topic being discussed. [] In format descriptions, brackets indicate that whatever is enclosed within the brackets is optional; you can select none, one, or all of the choices. Brackets are not, however, optional in the syntax of a directory name in a file specification. {} In format descriptions, braces surround a required choice of options; you must choose one of the options listed. boldface Boldface text represents the introduction text of a new term or the name of an argument, an attribute, or a reason. Boldface text is also used to show user input in online versions of the book. vii UPPERCASE Uppercase letters indicate that you must enter TEXT a command (for example, enter OPEN/READ), or they indicate the name of a routine, the name of a file, the name of a file protection code, or the abbreviation for a system privilege. - Hyphens in coding examples indicate that additional arguments to the request are provided on the line that follows. numbers Unless otherwise noted, all numbers in the text are assumed to be decimal. Non-decimal radices- binary, octal, or hexadecimal-are explicitly indicated. viii 1 _________________________________________________________________ New and Modified Features This chapter describes new features and feature changes that have been added since the MACRO-64 V1.1 release. 1.1 Pre-$OPDEF'd Instructions Made Intrinsic The following instructions are implicitly defined using the $OPDEF macro with MACRO-64 V1.1. They are now intrinsically defined by MACRO-64 with V1.2. EXCB WMB UNOP 1.2 Listing File Format Changes There have been several changes to the format of the listing file. 1.3 /ARCHITECTURE Qualifier The /ARCHITECTURE qualifier specifies the lowest version of the Alpha architecture on which the code can run. If instructions for a higher version of the architecture are used, a diagnostic will be given. All Alpha processors implement a core set of instructions and, in some cases, the following extensions: BWX (byte- and word-manipulation instructions) and MAX (multimedia instructions). (The Alpha Architecture Reference Manual describes the extensions in detail.) New and Modified Features 1-1 New and Modified Features 1.3 /ARCHITECTURE Qualifier /ARCHITECTURE=GENERIC Allow instructions that are appropriate for all Alpha processors. This option is the default, and is equivalent to /ARCHITECTURE=EV4. /ARCHITECTURE=HOST Allow instructions for the processor that the compiler is running on (for example, EV56 instructions on an EV56 processor, and EV4 instructions on an EV4 processor). /ARCHITECTURE=EV4 Allow instructions for the EV4 base design processors (21064, 20164A, 21066, and 21068 chips). /ARCHITECTURE=EV5 Allow instructions for the EV5 processor (some 21164 chips). (Note that the EV5 and EV56 processors both have the same chip number - 21164.) /ARCHITECTURE=EV56 Allow instructions for EV56 processors (some 21164 chips). This option allows any EV5 instruction, plus any instructions contained in the BWX extension. /ARCHITECTURE=PCA56 Allow instructions for PCA56 processors (21164PC chips). This option allows any EV5 instruction, plus any instructions contained in the BWX or MAX extensions. /ARCHITECTURE=EV6 Generate instructions for EV6 processirs (21264 chips.) In addition to the BWX and MAX extensions, this allows square root instructions. 1-2 New and Modified Features New and Modified Features 1.4 New Instructions 1.4 New Instructions The following instructions, described in ECOs 81, 84, 87, 88, 90, 94 and 96 of the Alpha SRM, have been added: AMASK CTLZ CTPOP CTTZ ECB FTOIS FTOIT IMPLVER ITOFF ITOFS ITOFT LDBU LDWU MAXSB8 MAXSW4 MAXUB8 MAXUW4 MINSB8 MINSW4 MINUB8 MINUW4 PERR PKLB PKWB SEXTB SEXTW SQRTF SQRTF/C SQRTF/S SQRTF/SC SQRTF/SU SQRTF/SUC SQRTF/U SQRTF/UC SQRTG SQRTG/C SQRTG/S SQRTG/SC SQRTG/SU SQRTG/SUC SQRTG/U SQRTG/UC SQRTS SQRTS/C SQRTS/D SQRTS/M SQRTS/SU SQRTS/SUC SQRTS/SUD SQRTS/SUI SQRTS/SUIC SQRTS/SUID SQRTS/SUIM SQRTS/SUM SQRTS/U SQRTS/UC SQRTS/UD SQRTS/UM SQRTT SQRTT/C SQRTT/D SQRTT/M SQRTT/SU SQRTT/SUC SQRTT/SUD SQRTT/SUI SQRTT/SUIC SQRTT/SUID SQRTT/SUIM SQRTT/SUM SQRTT/U SQRTT/UC SQRTT/UD SQRTT/UM STB STW UNPKBL UNPKBW WH64 New and Modified Features 1-3 2 _________________________________________________________________ Resolved Problems This chapter lists problems corrected since the V1.1 release. 2.1 /ALIGN=CODE doesn't align entry points With MACRO-64 V1.1, the .ENABLE ALIGN_CODE and /ALIGN=CODE options do not quadword-align procedure entry points. This problem has been corrected with MACRO-64 V1.2. 2.2 .INSTRUCTION with forward reference in MIX psect With MACRO-64 V1.1, the .INSTRUCTION directive sets the high six bits (the opcode field) to 0 with a forward reference in a MIX psect. This problem has been corrected with MACRO-64 V1.2. 2.3 Forward references to .RESTOREd local blocks cause internal error With MACRO-64 V1.1, an internal error sometimes occurs with a forward reference to a temporary label that is defined in a section of a local block that occurs after the local block is restored with a .RESTORE directive. This problem has been corrected with MACRO-64 V1.2. 2.4 Erroneously included CVTQF and CVTQG qualifiers The /S and /SC qualifiers were erroneously included with CVTQF and CVTQG. This problem has been corrected with MACRO-64 V1.2. Resolved Problems 2-1 Resolved Problems 2.5 Erroneously omitted CVTTQ qualifiers 2.5 Erroneously omitted CVTTQ qualifiers The /D, /VD, /SVD, /SVID, /M, /VM, /SVM and /SVIM qualifiers were erroneously omitted from CVTTQ. This problem has been corrected with MACRO-64 V1.2. 2-2 Resolved Problems 3 _________________________________________________________________ Known Problems and Restrictions This chapter describes known problems and restrictions that are not resolved at the time of this release. 3.1 .BLKx directives in machine-code listing The .BLKx directives do not appear in the machine-code listing with /MACHINE_CODE. However, the storage is correctly allocated and the offsets within the psect are correctly maintained. 3.2 Instructions for MIX psects Instructions which occur in psects with the MIX attribute appear in the machine listing as initial value specifiers for the .LONG directive. 3.3 Backwards branch to external label can cause internal error In an EXE,NOMIX psect, a branch to a label that is previously declared to be be .EXTERNAL that is also preceded by a local, backwards branch instruction to a previously-defined label within the same psect can cause the assember to abort with an internal error. As a workaround, remove the .EXTERNAL declaration of the external label and allow the external label to be processed as external by default. Known Problems and Restrictions 3-1