3.3.1.2 Memory Format Jump Instructions

For computed branch instructions (CALL, RET, JMP, JSR_COROUTINE) the displacement field is used to provide branch-prediction hints as described in Section 4.3.

3.3.2 Branch Instruction Format

The Branch format is used for conditional branch instructions and for PC-relative subroutine jumps. It has the format shown in Figure 3–3.

Figure 3–3: Branch Instruction Format

31

26 25

21 20

0

Opcode

Ra

Branch_disp

A Branch format instruction contains a 6-bit opcode field, one 5-bit register address field (Ra), and a 21-bit signed displacement field.

The displacement is treated as a longword offset. This means it is shifted left two bits (to address a longword boundary), sign-extended to 64 bits, and added to the updated PC to form the target virtual address. Overflow is ignored in this calculation. The target virtual address (va) is computed as follows:

va PC + {4*SEXT(Branch_disp)}

3.3.3 Operate Instruction Format

The Operate format is used for instructions that perform integer register to integer register operations. The Operate format allows the specification of one destination operand and two source operands. One of the source operands can be a literal constant. The Operate format in Figure 3–4shows the two cases when bit <12> of the instruction is 0 and 1.

Figure 3–4: Operate Instruction Format

31

26 25

21 20

16 15 13 12 11

5

4

0

Opcode Ra

Rb

SBZ 0

Function

Rc

31

26 25

21 20

13 12 11

5

4

0

Opcode Ra

LIT

1 Function

Rc

3–12Alpha Architecture Handbook

Page 52
Image 52
Compaq ECQD2KCTE manual Branch Instruction Format, Operate Instruction Format, Memory Format Jump Instructions