![Digital Equipment Alpha 21164PC Hardware Reference Manual Download Page 227](http://html.mh-extra.com/html/digital-equipment/alpha-21164pc/alpha-21164pc_hardware-reference-manual_2498508227.webp)
29 September 1997 – Subject To Change
Privileged Architecture Library Code
6–5
PALcode Entry Points
6.4 PALcode Entry Points
PALcode is invoked at specific entry points. The 21164PC has two types of PAL-
code entry points: CALL_PAL and traps.
6.4.1 CALL_PAL Entry
CALL_PAL entry points are used whenever the IDU encounters a CALL_PAL
instruction in the instruction stream (Istream). CALL_ PAL instructions start at the
following offsets:
•
Privileged CALL_PAL instructions start at offset 2000
16
.
•
Nonnprivileged CALL_PAL instructions start at offset 3000
16
.
The CALL_PAL itself is issued into pipe E1 and the IDU stalls for the minimum
number of cycles necessary to perform an implicit TRAPB. The PC of the instruction
immediately following the CALL_PAL is loaded into EXC_ADDR and is pushed
onto the return prediction stack.
The IDU contains special hardware to minimize the number of cycles in the TRAPB
at the start of a CALL_PAL. Software can benefit from this by scheduling
CALL_PALs such that they do not fall in the shadow of:
•
IMUL
•
Any floating-point operate, especially FDIV
Each CALL_PAL instruction includes a function field that will be used in the calcu-
lation of the next PC. The PAL OPCDEC flow will be started if the CALL_PAL
function field is:
•
In the range 40
16
to 7F
16
inclusive.
•
Greater than BF
16
.
•
Between 00
16
and 3F
16
inclusive, and ICM<04:03> is not equal to kernel.
If no OPCDEC is detected on the CALL_PAL function, then the PC of the instruc-
tion to execute after the CALL_PAL is calculated as follows:
•
PC<63:14> = PAL_BASE IPR<63:14>
•
PC<13> = 1
•
PC<12> = CALL_PAL function field<7>
•
PC<11:06> = CALL_PAL function field<5:0>