Compaq EV67 User Manual

Page of 356
Alpha 21264/EV67 Hardware Reference Manual
Privileged Architecture Library Code
6–3
Required PALcode Function Codes
When executing in PALmode, there are certain restrictions for using the privileged 
instructions because PALmode gives the programmer complete access to many of the 
internal details of the 21264/EV67. Refer to Section 6.4 for information on these spe-
cial PALmode instructions.
Caution:
It is possible to cause unintended side effects by writing what appears to be 
perfectly acceptable PALcode. As such, PALcode is not something that 
many users will want to change. Before writing PALcode, at least become 
familiar with the information in Appendix D.
6.3 Required PALcode Function Codes
Table 6–1 lists opcodes required for all Alpha implementations. The notation used is 
oo.ffff, where oo is the hexadecimal 6-bit opcode and ffff is the hexadecimal 26-bit 
function code.
6.4 Opcodes Reserved for PALcode
Table 6–2 lists the opcodes reserved by the Alpha architecture for implementation-spe-
cific use. These opcodes are privileged and are only available in PALmode.
These instructions generally produce an OPCDEC exception if executed while the pro-
cessor is not in PALmode. If I_CTL[HWE] is set, these instructions can also be exe-
cuted in kernel mode. Software that uses these instructions must adhere to the PALcode 
restrictions listed in this section.
6.4.1 HW_LD Instruction
PALcode uses the HW_LD instruction to access memory outside the realm of normal 
Alpha memory management and to perform special Dstream load transactions. Data 
alignment traps are disabled for the HW_LD instruction.
Figure 6–1 shows the HW_LD instruction format.
Table 6–1 Required PALcode Function Codes
Mnemonic
Type
Function Code
DRAINA
Privileged
00.0002
HALT
Privileged
00.0000
IMB
Unprivileged
00.0086
Table 6–2 Opcodes Reserved for PALcode
Mnemonic
Opcode
Architecture 
Mnemonic
Function
HW_LD
1B
PAL1B
Dstream load instruction
HW_ST
1F
PAL1F
Dstream store instruction
HW_RET
1E
PAL1E
Return from PALcode routine
HW_MFPR
19
PAL19
Copies the value of an IPR into an integer GPR
HW_MTPR
1D
PAL1D
Writes the value of an integer GPR into an IPR