User`s guide

Recommended and Required Source Changes
3.2 Instruction Stream
Recommended Change
If the compiler detects any nonconformant use of interlocked memory instructions,
follow the recommended user actions described with these warning messages.
3.2.9 Use of the MOVPSL Instruction
The MOVPSL instruction fetches the OpenVMS Alpha PS, whose contents differ
from the VAX PSL (processor status longword). For example, the OpenVMS
Alpha and OpenVMS I64 PS do not contain the condition code bits. For more
information about the OpenVMS Alpha PS, refer to the Alpha Architecture
Reference Manual.
Recommended Change
The MOVSPL instruction is rarely used. If your code contains the MOVPSL
instruction, you will need to rewrite the code to port it to OpenVMS Alpha or
OpenVMS I64 systems.
3.2.10 Instructions Implemented By Macros
Some opcodes on VAX Macro-32 became built-ins on Alpha Macro-32 (which may
have compiled into a PAL or routine call to do the work) and have now become
macros on Itanium (which, again, may expand into a routine call).
These opcodes that are now macros can cause errors due to the slight difference
in syntax rules between instructions and macros. In general, opcode parameters
require a comma separator because there can be expressions in the arguments.
Macro arguments are simply text, so not only commas but any space or tab is
considered an argument separator. (Some macro arguments might look like
expressions, but they are not treated as such by Macro-32 until they are used in
the expansion of the macro in a context where they will be evaluated.)
You can correct the source code by reformatting it to omit the unnecessary spaces.
The following VAX MACRO file shows this distinction:
.macro Prober_mac a,b,c
prober a,b,c
.endm
prober one, two-too(r2), three(r3) ; This one works.
Prober_mac one, two-too(r2), three(r3) ; This one works.
prober one, two - too(r2), three(r3) ; This one works.
Prober_mac one, two - too(r2), three(r3) ; This one fails
; because the spaces are
; argument separators.
prober one, - ; This one works.
two - - ; Note the second argument is
too(r2), - ; separated onto two lines.
three(r3)
Prober_mac - ; This one fails.
one, -
two - - ; Note the second argument is
too(r2), - ; separated onto two lines.
three(r3)
Prober_mac - ; This one works because there
one, - ; are no spaces or tabs before
two-- ; or after the continuation
too(r2), - ; line break.
three(r3)
Recommended and Required Source Changes 3–7