On OpenVMS Alpha systems, the compiler provides two sets of
built-ins:
o Alpha instruction built-ins that are used to access Alpha
instructions for which there are no VAX equivalents.
o Alpha PALcode built-ins that are used to emulate the VAX
instructions for which there are no Alpha equivalents and to
perform other functions such as quadword queue manipulations.
Both sets of built-ins are presented in tables. The second column
of each table specifies the operands the built-in expects, where:
WL = write longword
ML = modify longword
AL = address of longword
WQ = write quadword
RQ = read quadword
MQ = modify quadword
AQ = address of quadword
AB = address of byte
AW = address of word
WB = write byte
WW = write word
NOTE
Be careful when mixing built-ins with VAX MACRO instructions
on the same registers. The code generated by the compiler
expects registers to contain 32-bit sign-extended values,
but it is possible to create 64-bit register values that are
not in this format. Subsequent longword operations on these
registers could produce incorrect results.
Therefore, make sure to return registers to 32-bit sign-
extended format before using them in VAX MACRO instructions
as source operands. Note that loading the register with
a new value using a VAX MACRO instruction (such as MOVL)
returns it to this format.
Additional Information:
explode
extract