                                               H                     DECmigrate_Version_1.1A_for_OpenVMS_AXP_Systems_____!                     Release Notes     !                     November 1994   D                     This document describes product restrictions and#                     known problems.               H                     Revision/Update Information:  This manual supersedesH                                                   DECmigrate Version 1.1I                                                   for OpenVMS AXP Release 8                                                   Notes.  I                     Operating System and Version: OpenVMS AXP Version 6.1 ;                                                   or higher   I                     Software Version:             DECmigrate Version 1.1A I                                                   for OpenVMS AXP Systems     1                     Digital Equipment Corporation *                     Maynard, Massachusetts                 J           ________________________________________________________________           November 1994   ?           The information in this document is subject to change D           without notice and should not be construed as a commitment=           by Digital Equipment Corporation. Digital Equipment C           Corporation assumes no responsibility for any errors that &           may appear in this document.  D           The software described in this document is furnished underE           a license and may be used or copied only in accordance with $           the terms of such license.  A           No responsibility is assumed for the use or reliability B           of software on equipment that is not supplied by Digital<           Equipment Corporation or its affiliated companies.  /            Digital Equipment Corporation 1994.              All Rights Reserved.  ;           The following are trademarks of Digital Equipment A           Corporation: Alpha AXP, AXP, Bookreader, DEC, DEC 4000, D           DECchip, DECmigrate, DECnet, DECwindows, Digital, OpenVMS,C           VAX, VAX Ada, VAX BASIC, VAX C, VAX COBOL, VAX DIBOL, VAX E           DOCUMENT, VAX FORTRAN, VAX SCAN, VMS, the AXP logo, and the            DIGITAL logo.   E           PostScript is a registered trademark of Adobe Systems, Inc.   :           MOTIF is a registered trademark of Open Software           Foundation, Inc.  @           All other trademarks and registered trademarks are the/           property of their respective holders.   E           This document was prepared using VAX DOCUMENT, Version 2.1.                                  C   _________________________________________________________________   C                                                            Contents       C      1    DECmigrate for OpenVMS AXP Systems...............       1 C      2    Associated Documents.............................       1 C      3    Restrictions and Known Problems..................       2 C      3.1     General Restrictions ..........................      2 C      3.2     Interoperability Restrictions .................      4 C      3.3     Layered Product Shareable Libraries ...........      5 4      3.4     Circular Dependencies Between ShareableC              Images.........................................      6 C      3.5     Unreported Call Mask Overlaps .................      6 C      3.6     Unreported Invalid Case Statement .............      7 3      3.7     Unable to Translate Due To Environment C              Problems.......................................      7 1      3.8     Erroneous Non-Standard CALL Reported C              (NONSTDCALL)...................................      7 C      3.9     VEST/DEPENDENCY and Shareable Images ..........      7 C      3.10    FLOWGRAPH and DSTGRAPH /OUTPUT qualifier ......      8 9      3.11    Global Pages and Global Sections Not Checked C              During Installation............................      9 C      3.12    /PRESERVE=INSTRUCTION_ATOMICITY Restriction ...      9 C      3.13    Universal Jsbentry Restriction ................     10 C      3.14    Source-language-specific Restrictions .........     10 C      3.14.1    VAX Ada.....................................      10 C      3.14.2    VAX BASIC...................................      10 C      3.14.3    VAX COBOL...................................      10 C      3.14.4    VAX DIBOL...................................      10 C      3.14.5    VAX C.......................................      11 C      3.15    Linked with /NOSYSSHR Restriction .............     12 C      3.16    Floating Point Restrictions ...................     12 C      3.17    PROBER and PROBEW Restriction .................     14 C      3.18    BISPSW, RET, or REI Instruction Restriction ...     14 C      3.19    Condition and Exception Handler Restrictions ..     14 C      4    Documentation Changes, Errors and Omissions......      15     C                                                                 iii                    :         4.1    Increasing System Quotas to Translate LargeE                Images.........................................     15 E         4.2    User Action for ISDCONFLICT Error Message .....     15 E         4.3    PRIVSS Error Message ..........................     16 E         4.4    No Code Optimizations with /PRESERVE=SAFETY ...     16 8         5    Unsupported Feature-GIRDLE Information FileE              Compressor.......................................     16          Examples  E         1      Output from $VEST/DEPENDENCY SIEVE ............      8   E         2      MMS file produced by $VEST/DEPENDENCY SIEVE ...      8   ;         3      Edited MMS file produced by $VEST/DEPENDENCY E                SIEVE..........................................      8   
     Tables  :         1      Compatibility between Translated Images andE                OpenVMS AXP Versions...........................      3                                                    iv                   ,         1 DECmigrate for OpenVMS AXP Systems  G               DECmigrate for OpenVMS AXP Systems supports the migration C               of OpenVMS VAX applications to OpenVMS AXP systems. A I               DECmigrate utility, the VAX Environment Software Translator E               (VEST), translates executable and shareable OpenVMS VAX D               images into functionally equivalent images that run onG               OpenVMS AXP systems. A translated image is an OpenVMS AXP F               image containing both VAX code translated into Alpha AXP=               code as well as the original OpenVMS VAX image.   B               DECmigrate Version 1.1A is a maintenance release. It5               includes bug fixes but no new features.   +               These release notes describe:   1               o  Associated documents (Section 2)   F               o  Known restrictions and problems (Section 3) - changes-                  are indicated in the margin.   I               o  Documentation changes, errors, and omissions (Section 4)   1               o  Unsupported features (Section 5)            2 Associated Documents  ?               Refer to the following two documents for detailed =               information on installing and using DECmigrate:   F               o  DECmigrate for OpenVMS AXP Systems Installation Guide  D                  This manual describes the procedures for installing4                  DECmigrate for OpenVMS AXP Systems.  F               o  DECmigrate for OpenVMS AXP Systems Translating Images  '                  This manual describes:   E                  o  How to use VEST to convert most user-mode OpenVMS H                     VAX images into translated images that can be run on'                     OpenVMS AXP systems   I                  o  How to improve the run-time performance of translated                      images  8                  o  How to use VEST to trace OpenVMS AXPE                     incompatibilities in an OpenVMS VAX image back to -                     the original source files   I                                                                         1                    B                  o  How to use VEST to support compatibility amongH                     native and translated run-time libraries (RTLs). TheH                     manual also includes complete VEST command reference                      information.  )         3 Restrictions and Known Problems   G               This section describes restrictions and known problems in &               DECmigrate Version 1.1A.  @               The Version 1.1 problems that have been fixed are:  G               o  Global symbols added to a shareable image that already 9                  has a .SIF file (previously Section 4.8)   I               o  Stack mismatch when more than 63 arguments are used in a ;                  CALLS instruction (previously Section 4.9)   @               o  Erroneous read of call frame reported (READCF0)*                  (previously Section 4.11)            3.1 General Restrictions  G               o  DECmigrate Version 1.1A can translate any translatable G                  image that runs on OpenVMS VAX Version 5.4-2 or later. B                  With some exceptions, a translatable image is anyC                  nonprivileged OpenVMS VAX image that was linked on F                  VAX/VMS Version 4.0 or later and that runs on OpenVMS@                  VAX Version 5.4-2. The appendix Translation andF                  Performance Restrictions in the manual DECmigrate forF                  OpenVMS AXP Systems Translating Images explains which-                  images are not translatable.   F                 ________________________ Note ________________________  D                 An otherwise translatable image that was linked on aC                 version of OpenVMS VAX later than Version 5.4-2 may D                 cause IDENTMISMATCH fatal errors when translated andC                 run on OpenVMS AXP because of incompatible run-time )                 library shareable images.   F                 ______________________________________________________      	         2                    D               o  DECmigrate Version 1.1A runs on OpenVMS AXP VersionF                  6.1 and the images it translates require this versionF                  or later to execute. Translated images in general areE                  forward compatible but not backward compatible- that C                  is, images translated with DECmigrate Version 1.1A G                  can run only on OpenVMS AXP Version 6.1 or later while I                  images translated with DECmigrate Version 1.0 can run on G                  OpenVMS AXP Version 1.0 and later. Refer to Table 1 to G                  check the versions of OpenVMS AXP systems supported by 6                  the different versions of DECmigrate.  I               Table 1 Compatibility between Translated Images and OpenVMS I               ________AXP_Versions_______________________________________   K               Images                                                OpenVMS G               translated                OpenVMS AXP   OpenVMS AXP   AXP I               by_DECmigrate____run_on?__V1.0__________V1.5__________V6.1_   G               Version 1.0               Yes           Yes           Yes   G               Version 1.1               No            Yes           Yes   I               Version_1.1A______________No____________No____________Yes__   @               o  Images linked under OpenVMS AXP Version 6.1 areG                  translatable if they have no dependencies-that is, the H                  images use only system services that were available for+                  OpenVMS VAX Version 5.4-2.   D               o  VEST cannot translate an image accessed by means ofE                  DECnet. If you include a node identifier in the file F                  specification, VEST issues the message %VEST-F-BADEXE?                  or %VEST-F-NOVM and completes with the message F                  %VEST-F-TRANSFATAL. Copy the image to your local node.                  before translating the image.  H               o  A translated image incurs a fatal exception if it firstF                  opens the maximum number of files permitted to it andE                  then tries to execute a complex VAX instruction. The G                  crash occurs because TIE$SHARE cannot open TIE$EMULAT_ F                  TV; the limit on open files has already been reached.;                  (TIE$EMULAT_TV emulates VAX instructions.)       I                                                                         3                    )         3.2 Interoperability Restrictions   H               On an OpenVMS AXP system, native and translated images canF               interoperate with one another: a native image can call aG               translated image and a translated image can call a native I               image. The following restrictions pertain to interoperation 3               between native and translated images:   C               o  A native routine that either calls or is called by B                  a translated image must be compiled with the /TIEH                  qualifier and linked with the /NONATIVE_ONLY qualifier.A                  Checking for interoperability between native and F                  translated images occurs at run time. If the /TIE andG                  /NONATIVE_ONLY qualifiers were not used to compile and E                  link the native routine, an error occurs at run time G                  when the native routine and a translated image attempt H                  to interoperate. If such an error occurs, recompile and9                  relink the native routine appropriately.   F                 ________________________ Note ________________________  B                 The VAX MACRO-64 Assembler for OpenVMS AXP Systems=                 does not support the /TIE switch. When coding D                 procedure descriptors in VAX MACRO-64, the developer?                 must specify a procedure signature block if the C                 routine can be called by translated code. (Refer to .                 the OpenVMS Calling Standard.)  F                 ______________________________________________________  F               o  An access violation can occur at run time if a nativeF                  routine that was not compiled with the /TIE qualifierD                  makes an indirect call to a translated routine. TheG                  indirect call is made through a variable that contains E                  the translated routine's address. When this happens, F                  there is no autojacketing code in place to assist theD                  native to translated call. The native code attemptsA                  to use the routine address as a native procedure I                  descriptor. The code address of a native procedure is at H                  offset PDSC$L_ENTRY, whose value is 8, from the base ofI                  the procedure descriptor. Because the translated routine H                  address is treated as a procedure descriptor, the valueE                  at offset 8 from that address is used as the code to C                  call. This usually results in an access violation.   	         4                    H                  If you suspect you are encountering this problem, use a1                  debugger to check the following:   B                  -  Check that R27 points into a translated image.  F                  -  Check that bits <31:2> of 8(R27) equal bits <31:2>I                     of the ACCVIO address. (All bits are not used because A                     Alpha AXP instructions are longword aligned.)   >                  -  Check that R26 points into a native image.  F                  -  Check that -4(R26) is a JSR R26,(R26) instruction.  D                  If all these checks prove to be true, recompile theA                  native routine with the /TIE qualifier to enable +                  autojacketing at run time.   C               o  If translated code specifies a native routine as a D                  change mode handler in a call to the $DCLCMH systemG                  service, the program either crashes or gives incorrect                   results._  H               o  DECmigrate does not support shared PSECTs (for example,E                  VAX COBOL EXTERNAL, VAX Basic COMMON, or VAX FORTRAN I                  COMMON statements) between translated and native images. H                  Sharing data in shared PSECTs between translated imagesI                  is supported. In addition, sharing data allocated at run G                  time (using $CRMPSC, for example) is supported between .                  translated and native images.  G               o  Translated code cannot call a jsbentry in native code, H                  nor can native code call a jsbentry in translated code.E                  The Alpha AXP calling standard supports call entriesn                  only.  /         3.3 Layered Product Shareable Librariesy  A               Some OpenVMS AXP layered products do not allow both C               translated and native images to exist within the same_F               process. Such a restriction may exist because translatedF               and native versions of the product's shareable librariesA               may be incompatible. As you migrate an application,aF               check for any such incompatibility for the products your%               application depends on.o  I                                                                         5                    H               For example, the DECwindows Motif for OpenVMS AXP softwareD               includes support for translated images for OpenVMS VAXG               DECwindows Motif images. (Select translated image supporteH               during the installation procedure for the DECwindows MotifH               product. See the chapter on installing the software in theG               DECwindows Motif for OpenVMS AXP Version 1.1 Installationr&               Guide for instructions.)  H               The DECwindows Motif for OpenVMS AXP shareable images thatD               are used with translated images are different from andF               not compatible with the shareable images used for nativeC               images. As a result, the following image restrictionsh               apply:  F               -  Do not use both native and translated images that useH                  DECwindows Motif for OpenVMS AXP software in a process.  A                  Either port or translate all the images that usemD                  DECwindows Motif for OpenVMS AXP and that call each                  other.   I               -  Translated images that dynamically activate a DECwindows ?                  Motif image using LIB$FIND_IMAGE_SYMBOL from a_4                  translated image are not supported.  :         3.4 Circular Dependencies Between Shareable Images  E               If a circular dependency exists between two OpenVMS VAXsI               shareable images, but neither image has initialization codetE               (LIB$INITIALIZE), the images activate. However, if theylI               have initialization code, they do not activate. These kindslF               of images do not activate on OpenVMS AXP when translatedH               because VEST always adds initialization code to translatedI               shareable images. The OpenVMS AXP system reports a circular.               dependency.   )         3.5 Unreported Call Mask Overlaps.  E               A bug in VEST's analysis phase occasionally causes VEST F               not to report call mask overlaps when more than one callD               mask uses a common byte. This bug does not affect code               generation.A      	         6                    -         3.6 Unreported Invalid Case Statement   B               VEST may fail to report an invalid case statement ifF               the case limit itself is invalid and if some of the case7               statement branches point to invalid code.   ;         3.7 Unable to Translate Due To Environment Problems   @               If environment problems cause VEST to be unable toF               translate an image, VEST may not report what the problemE               is. An insufficient quota or an offline output disk are /               examples of environment problems..  =         3.8 Erroneous Non-Standard CALL Reported (NONSTDCALL).  H               VEST often reports a non-standard CALLed routine when both3               of the following conditions are true:.  E               o  Two or more entry points feed into common exit code..  C               o  The call masks for the entry points are different.c  7               This bug does not affect code generation.t  0         3.9 VEST/DEPENDENCY and Shareable Images  H               OpenVMS VAX images refer to shareable images supplied withH               the OpenVMS VAX system. VEST/DEPENDENCY cannot distinguishE               between shareable images for which .IIF files have beenhG               supplied by Digital or a third party and shareable images B               that are part of the software being translated. As aG               result, VEST/DEPENDENCY attempts to analyze all shareableIH               images in the dependency tree. As shown in Example 1, whenG               run on OpenVMS AXP, VEST/DEPENDENCY may report that filesSD               such as LIBRTL.EXE and MTHRTL.EXE cannot be opened forF               analysis. Whether VEST/DEPENDENCY reports these messagesI               or not, edit the MMS file produced to remove all references.D               to .IIF files and shareable images that are not a partE               of the software being translated. After editing the MMS I               file, you can process the file normally. Example 2 contains F               an example of an MMS file before it is edited. Example 3E               contains an example of the same MMS file after editing.       I                                                                         7r n  .              :               Example 1 Output from $VEST/DEPENDENCY SIEVE  %               $ VEST/DEPENDENCY SIEVE I               %VEST-I-READIMAGE, Reading image file DISK:[USER]SIEVE.EXE;VT               %VEST-F-OPENIN, Error opening SYS$COMMON:[SYSLIB]VAXCRTL.EXE; as input(               -RMS-E-FNF, file not foundN               %VEST-F-DEPENDFATAL, Complete dependency analysis was impossible  C               Example 2 MMS file produced by $VEST/DEPENDENCY SIEVEi  ^               !  DISK$:[USER]SIEVE.MMS; created by VEST/DEPENDENCY on Mon May 17 16:01:18 1993  [               ! Define default VEST switches.  They can be overridden from the command line J               !  by saying MMS/MACRO="VESTSWITCHES=/FLOWGRAPH" for example               !r>               VESTCOMMAND = VEST $(MMS$SOURCE) $(VESTSWITCHES)  /               TARGET : DISK$:[USER]SIEVE_TV.EXEs                 !c  A               DISK$:[USER]SIEVE_TV.EXE : DISK$:[USER]SIEVE.EXE, - ,                VEST$FULL_INCLUDE:VAXCRTL.IIF                 $(VESTCOMMAND)  D               Example 3 Edited MMS file produced by $VEST/DEPENDENCY                         SIEVEc  ^               !  DISK$:[USER]SIEVE.MMS; created by VEST/DEPENDENCY on Mon May 17 16:01:18 1993  [               ! Define default VEST switches.  They can be overridden from the command linenJ               !  by saying MMS/MACRO="VESTSWITCHES=/FLOWGRAPH" for example               !t>               VESTCOMMAND = VEST $(MMS$SOURCE) $(VESTSWITCHES)  /               TARGET : DISK$:[USER]SIEVE_TV.EXE                  !t  >               DISK$:[USER]SIEVE_TV.EXE : DISK$:[USER]SIEVE.EXE                 $(VESTCOMMAND)  5         3.10 FLOWGRAPH and DSTGRAPH /OUTPUT qualifiere  I               If the /OUTPUT qualifier is specified with only a directory F               specification, FLOWGRAPH and DSTGRAPH generate an output               file named:o                 .PSr                 For example,  7               $ FLOWGRAPH/OUTPUT=DISK$:[USER] FOO.GRAPH   	         8o a  O              -               results in an output file namedM                 DISK$:[USER].PS   @         3.11 Global Pages and Global Sections Not Checked During              Installation   D               The DECmigrate kit does not check to see if the systemC               has sufficient global pagelets and global sections ataB               installation time. DECmigrate requires that there beF               two free global sections and 26 free global pagelets for,               installation of message files.  A               If you install DECmigrate on a system that does not F               have enough free global pagelets or global sections, theI               installation fails with a warning similar to the following:   e         %INSTALL-E-FAIL, failed to REPLACE entry for DISK$SYSTEM:<SYS0.SYSCOMMON.SYSEXE>DCLTABLES.EXE84         -SYSTEM-F-GPTFULL, global page table is fullF         %INSTALL-W-DELETED, previous Known File Entry has been deleted  8         3.12 /PRESERVE=INSTRUCTION_ATOMICITY Restriction  ?               The following restrictions apply when you use the)D               /PRESERVE=INSTRUCTION_ATOMICITY qualifier setting when#               translating an image:a  E               o  Preserved instruction atomicity applies only to codetE                  that is translated, not to complex VAX instructions.yH                  (Complex VAX instructions are executed by the shareable&                  image TIE$EMULAT_TV.)  A               o  Instruction atomicity is never preserved for the B                  following VAX instructions, even when translated:                       ASHL                     ASHQ                     BSBB                     BSBW                     CALLG                      CALLS                      EDIV                     INSV                     JSB   I                                                                         9o f  e              +         3.13 Universal Jsbentry Restrictions  B               If a shareable image contains any universal jsbentryD               routines that return information by means of conditionH               codes, it must be translated with the /PRESERVE=CONDITION_               CODES qualifier.  2         3.14 Source-language-specific Restrictions  G               The following restrictions pertain to specific languages.e           3.14.1 VAX Ada  F               Applications written in VAX Ada cannot be translated. ToF               migrate such applications, you must recompile the source7               code and relink on an OpenVMS AXP system.t           3.14.2 VAX BASIC  A               If an image contains any VAX BASIC code that uses alB               WHEN ERROR construct, it must be translated with theF               /OPTIMIZE=NOSCHEDULE qualifier. The WHEN ERROR construct@               may not function properly if a complex instructionD               emulation routine is executing, even if you translated@               the image with the /OPTIMIZE=NOSCHEDULE qualifier.           3.14.3 VAX COBOL  I               The translated version of a VAX COBOL program that contains H               either the CANCEL verb or the IS INITIAL program phrase ofG               the PROGRAM-ID paragraph encounters a run-time error like                the following:                  $ RUN COBOLTEST_TVD               %COB-F-CANFAIL, CANCEL failed on routine (MODULE-NAME)7               -SYSTEM-F-PAGOWNVIO, page owner violation   C               If you encounter this run-time error, you must relink_<               the original VAX COBOL program with the moduleF               SYS$LIBRARY:COBRESTVA.OBJ (distributed in the DECmigrateF               kit) and then retranslate. VEST is unable to detect this1               problem when translating the image.            3.14.4 VAX DIBOL  A               If an image contains any VAX DIBOL code, it must bed=               translated with the /PRESERVE=SAFETY qualifier.e  
         10 l                          3.14.5 VAX C  B               The following restrictions pertain to code in VAX C:  I               o  By default, VAX C programs are linked with VAXCRTL. When H                  VEST translates a VAX C program linked with VAXCRTL, itH                  must translate the entire library as well as the actualG                  program. It is recommended that you relink a C program E                  on OpenVMS VAX before you translate it. For example:   +                  $link sieve,sys$input:/opt .                  sys$library:vaxcrtl.exe/share                  <Ctrl/Z>a  G                  Linking a VAX C program in this way causes it to shareiF                  VAXCRTL rather than include it. Translating the imageE                  will be quicker and will incur fewer error messages.s  G               o  If a program uses the VAXCRTL routine brk() to release B                  dynamic memory (that is, a lower break address isD                  requested than the current break address), the nextD                  attempt by TIE to use a complex instruction routineH                  may result in a fatal memory access violation. This mayI                  happen because the complex instruction routines are in a H                  separate image, TIE$EMULAT_TV.EXE, which is dynamicallyE                  activated via LIB$FIND_IMAGE_SYMBOL on the first use F                  of one of the routines. Depending on when this occursG                  and the address passed to the brk() call that releases D                  memory, the memory into which TIE$EMULAT_TV.EXE was-                  loaded may also be released.o  B                  To avoid this problem, never use brk() to releaseG                  memory or be sure to execute a complex VAX instructionrF                  prior to getting the break address that is later usedG                  to release memory. The use of brk() to allocate memory_-                  translates without problems.A  E               o  A translated VAX C program that uses vfork() and anyIF                  executive function may hang at run time. If the childD                  process of the VAX C program aborts erroneously, itD                  may hang waiting for a mailbox I/O to be completed.D                  One workaround is to prevent the child process from                  aborting.    I                                                                        11n n  c              .         3.15 Linked with /NOSYSSHR Restriction  H               VEST is unable to translate any image that has been linkedI               with the qualifier /NOSYSSHR and whose system version arrayuI               is not empty. (Use the ANALYZE/IMAGE command to examine therI               input image's system version array information to determinenF               whether or not the array is empty.) Relink such an imageG               without this qualifier before attempting to translate it.v  (         3.16 Floating Point Restrictions  B               The following restrictions pertain to floating point               operations:s  C               o  Certain code in the Math Run-Time Library (MTHRTL)eC                  assumes D56 precision. Because the VEST default isoF                  to use D53 precision (/FLOAT=D53_FLOAT), a translatedI                  image can generate inaccurate results (11 MOD 2 = 3, fornH                  example) if it happens to use the D56-dependent MTHRTL.H                  If such obviously inaccurate results occur, retranslateD                  the image using the qualifier /FLOAT=D56_FLOAT. TheI                  translated image then uses MTHRTL_D56_TV.EXE rather than #                  MTHRTL_D53_TV.EXE.   E               o  In some cases, floating point instructions operating C                  on the same data generate a trap on an OpenVMS AXP G                  system but not on an OpenVMS VAX system. Specifically, B                  VAX floating point instructions on an OpenVMS AXPC                  system generate traps for the dirty zeros that VAX D                  hardware handles as zeros. Dirty zeros are floatingD                  point values that are alternate encodings for zero.B                  To retain compatibility with translated code thatH                  performs operations using dirty zeros, the TIE includesF                  a condition handler that corrects the dirty zeros andC                  retries the floating point operation. However, thexH                  handler succeeds only if the qualifier /PRESERVE=FLOAT_C                  EXCEPTIONS was used when the image was translated.v  F                  Images that were not translated with /PRESERVE=FLOAT_I                  EXCEPTIONS and that perform an operation on a dirty zerotF                  incur an HPARITH exception with a summary status thatI                  has bit 1 set. If your translated application incurs one G                  of these exceptions, retranslate with /PRESERVE=FLOAT_ E                  EXCEPTIONS. VAX dirty zeros commonly result from not F                  initializing floating data to 0. In this case, if youD                  are planning to eventually recompile and relink the  
         12 O  V              F                  application on an OpenVMS AXP system, you may need toF                  make changes to the source code that uses dirty zeros/                  for the port to be successful.i  D               o  Alpha AXP D53 floating point (D_floating point as aE                  53-bit fraction instead of a 56-bit fraction) is VAXnH                  D_floating converted to G_floating representation. ThisH                  conversion leads to the following problem. Consider the4                  following VAX instruction sequence:  (                          MOVD    (SP),R2)                          MOVD    R2,-(SP)t  F                  VEST translates these VAX instructions into Alpha AXP)                  code like the following:   A                          LDG     F2,0(R14)       ! Pickup D float \                          CVTDG   F2,F2           ! Convert to Canonical G Form with roundingU                          CVTGD   F2,F17          ! Convert back to D Form for storingoC                          STG     F17,-8(R14)     ! Store the resulti  C                  At run time, the VEST-generated code uses rounding B                  to obtain the most accurate G_floating value whenG                  converting the D56 floating point to G canonical form.rF                  In some cases, the conversion to G canonical form mayI                  round up the D_floating value to create an exponent thatnH                  cannot be represented in D_floating. When this happens,I                  the CVTGD operation incurs an HPARITH trap with floatingX0                  overflow as the summary reason.  A                  If a translated image incurs this problem at rundF                  time, it must be retranslated with the VEST qualifier6                  /FLOAT=D56_FLOAT to execute properly.  D               o  Regardless of the /FLOAT setting for floating pointH                  instructions when you translate an image, the followingF                  VAX opcodes are always executed with D56 precision at                  run time:                       ACBD                     EMODDi                     POLYD                      CVTDH                      CVTHDn  I                                                                        13  s  i              *         3.17 PROBER and PROBEW Restriction  C               The VAX instructions PROBER and PROBEW detect neithernE               fault-on-read (FOR), fault-on-execute (FOE), nor fault-uG               on-write (FOW), three types of faults not present on VAX-oH               based systems. If a native OpenVMS AXP image sets pages inG               memory as FOR, FOE, or FOW, and then calls a routine in aAE               translated RTL that uses PROBER or PROBEW on an addressdC               within the protected range, PROBER or PROBEW fails tocF               detect that an access violation occurs when that page is               referenced.   8         3.18 BISPSW, RET, or REI Instruction Restriction  D               When a BISPSW, RET, or REI instruction operates on theH               program status word (PSW) and forces the resulting programI               status longword (PSL) to have both the N and Z bits set (aniH               inconsistent VAX value), a conditional branch based on the6               value of the PSL could go the wrong way.  9         3.19 Condition and Exception Handler Restrictionss  H               o  A restriction on the type of condition handler that canE                  be established exists for both native and translatedtG                  images. A native routine cannot establish a translatedn@                  condition handler, nor can a translated routineE                  establish a native condition handler. If a native or I                  translated image violates this restriction, the run-time +                  results are unpredictable.C  H               o  The OpenVMS AXP system does not support a native callerD                  passing a translated routine address to $SETEXV. AnE                  error occurs when a native caller attempts to do so. G                  Users should ensure that translated condition handlersz4                  are established by translated code.  F               o  Translated images with exception handlers that dependA                  on receiving the correct Program Status LongwordEG                  (PSL) might not function properly. When exceptions areEH                  reported, the Alpha AXP Program Status (PS) is reportedH                  in the signal array instead, since there is no VAX PSL.  I               o  Translated images with exception handlers that depend onlH                  modifying the PSL in the signal array will not functionG                  properly. The modified PSL will not be propagated backe&                  to the faulting code.  
         14 x  l              I               o  LIB$DECODE_FAULT is the Decode Instruction Stream During I                  Fault routine in the OpenVMS VAX run-time library (RTL). E                  It is a routine for building condition handlers that H                  process instruction fault exceptions. It is called from%                  a condition handler.   G                  This routine is very specific to the VAX architecture.EH                  Programs that depend on the VAX behavior of LIB$DECODE_E                  FAULT to execute properly do not execute translated. D                  In addition, code in an application that depends onF                  LIB$DECODE_FAULT needs to be rewritten before porting:                  the application to an OpenVMS AXP system.  B               o  VAX code that uses DECthreads TRY/CATCH exceptionC                  handling is not translatable. DECthreads exception B                  handling depends on executing in the frame of itsB                  caller. Because translation forces an extra frameE                  between the caller's and DECthread's exception code,C8                  exception handling won't work properly.  5         4 Documentation Changes, Errors and OmissionsD  C               The following corrections apply to the documentation.E  >         4.1 Increasing System Quotas to Translate Large Images  H               To translate large images, you may need to increase systemC               quotas so that VEST has enough memory to complete the/C               translation. The relevant quotas that you or a system -               manager may need to adjust are:                     BYTLM                  WSDEF                  WSQUO                  WSEXTENT:                  PGFLQUO  5         4.2 User Action for ISDCONFLICT Error Messaged  >               In the manual DECmigrate for OpenVMS AXP SystemsF               Translating Images, change the User Action: section that>               describes the ISDCONFLICT error message to read:  G                  Relink the image using /BPAGE=16 as a qualifier to the                   LINK commandOI                  ($ LINK/BPAGE=16) on an OpenVMS VAX Version 5.5 or lateru                  system.  I                                                                        15  c                           4.3 PRIVSS Error Message  G               The manual DECmigrate for OpenVMS AXP Systems TranslatingaF               Images does not include the following description of the#               PRIVSS error message:a  D          PRIVSS,  Image calls system service 'service'. Execution ofE             privileged code in a translated context is not supported.   G             Facility: VEST, VAX Environment Software Translator utilitye  B             Explanation: The image makes a call to the change modeC             service noted in the PRIVSS message. VEST can translateID             the image, but if the translated image calls the serviceG             and then attempts to execute privileged code, a fatal erroru             occurs.W  C             User Action: The user action depends on the image beingR             translated.I  7         4.4 No Code Optimizations with /PRESERVE=SAFETYa  D               The VEST qualifier /PRESERVE=SAFETY turns off all codeB               optimizations. This setting generates safe code thatD               includes no assumptions about call targets or resourceC               usage or any other assumptions that can cause VEST to @               generate erroneous translated code based on faulty               analysis.a  @         5 Unsupported Feature-GIRDLE Information File Compressor  G               The kit includes an unsupported program called the GIRDLEn*               Information File Compressor.  F                 ________________________ Note ________________________  A                 Because this program is unsupported, Digital does E                 not guarantee its performance. Please do not submit a =                 Software Performance Report for this feature.   F                 ______________________________________________________  H               The GIRDLE program takes a list of hand-edited informationH               files (.HIF files) for the same image and creates a singleF               .HIF output file. The program removes duplicate entries,E               merges sections based on the same translated version ofiH               an image, and preserves any entries presumed to be enteredE               by hand. GIRDLE may also be used with image informationn  
         16 t                 B               files (.IIF files) to sort entries to make them more               understandable.l  <               After DECmigrate has been installed, the files9               GIRDLE_TV.EXE and GIRDLE.CLD are located ine1               SYS$SYSROOT:[SYSHLP.EXAMPLES.VEST].e                                                                              I                                                                        17c                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          