User`s guide

MACRO Compiler Directives
.DEFINE_PAL (OpenVMS Alpha only)
Parameters
name
Name of the PALcode function. The compiler applies the prefix EVAX_ to the
specified name (for instance, EVAX_MTPR_USP).
pal_opcode
Opcode value of the PALcode function. PALcode opcodes are listed in the Alpha
Architecture Reference Manual.
Be sure to use angle brackets around the function code when specifying it in
hexadecimal format (^X). If you specify the function code in decimal format, angle
brackets are not necessary.
operand_descriptor_list
A list of operand descriptors that specifies the number of operands and the type of
each. Up to six operand descriptors are allowed in the list. Be careful to specify
operands correctly so that the compiler can correctly track register and stack
usage. Table B–1 lists the operand descriptors:
Table B–1 Operand Descriptors
Access Type
Data Type
Byte Word Longword Octaword
Address AB AW AL AQ
Read-only RB RW RL RQ
Modify MB MW ML MQ
Write-only WB WW WL WQ
Description
By default, the compiler defines many Alpha PALcode instructions as built-ins.
These are listed in Appendix C. If you need to use an Alpha PALcode instruction
that is not available as a compiler built-in, you must define the built-in yourself
using the .DEFINE_PAL directive.
Example
.DEFINE_PAL MTPR_USP, <^X23>, RQ
Note
This is an example—the compiler compiles MTPR instructions directly to
PAL calls.
B–8 Specialized Directives