A SERVICE OF

logo

Programming Release Notes
5.25 HP MACRO for OpenVMS
require any additional changes. For unused memory loads that must remain
in nal object le, change them from:
MOVL (Rn),Rn
into
IA64_LD8_A Rn,(Rn),#0
HP will add new syntax to the compiler in a future release to designate
instructions that must survive to the nal object le.
For systems prior to Version 8.3, there is no IA64_LD8_A built-in. The only
workaround is to use
/NOOPTIMIZE
.
5.25.3 HP MACRO for OpenVMS Alpha Systems
V8.3
The compiler might optimize away apparently unused memory loads. The
compiler’s new optimizer can recognize whether or not the result of a memory
load is used. If the result appears to be unused, the optimizer removes the
memory load as well. However, some code may be using the memory load to
fault a page into memory before raising IPL for example. In these cases, the
removed instruction prevents the page from being faulted into memory, and the
subsequent code at high IPL experiences a fatal page fault at high IPL exception.
The only workaround is either to use
/NOOPTIMIZE
or revert to the prior Macro-32
compiler, which does not contain the optimization.
The new Macro-32 compiler is named
SYS$SYSTEM:MACRO.EXE
and is the default
image activated by the
DCL MACRO
command. The older compiler can be found at
SYS$SYSTEM:ALPHA_MACRO.EXE
. For the DCL command MACRO to use the older
compiler, dene a MACRO logical name as follows:
$ DEFINE MACRO SYS$SYSTEM:ALPHA_MACRO.EXE
5.25.4 /OPTIMIZE=VAXREGS Qualier Not Supported on Integrity servers
V8.2
The /OPTIMIZE=VAXREGS qualier, which is supported on Alpha, is not
supported on Integrity servers. Unfortunately, all of the related code was not
removed from the command line processing. If you specify /OPTIMIZE=ALL
on Integrity servers, you will accidentally turn on the unsupported VAXREGS
optimization. A future release will correct the command line process to avoid
turning on the VAXREGS optimization.
5.25.5 Floating Divide-by-Zero Error Not Raised (Integrity servers Only)
V8.2
The Macro-32 oating-point support routines do not detect oating division by
zero. The support routines convert the VAX oating values to IEEE oating
values and perform the division. Without the check, the division produces an
IEEE NaN value. The support routines then attempt to convert the NaN value
back into a VAX oating value. That operation raises a oating invalid error.
A future release will x the support routines to properly raise the oating
divide-by-zero error.
5–22 Programming Release Notes