B IRP
Branch Using an Interrupt Return Pointer
3-44
Syntax
B (.unit)
IRP
.unit = .S2
Opcode map field used...
For operand type...
Unit
src2
xsint
.S2
Opcode
31
29 28 27
23 22
18 17
creg
z
dst
13 12
5
4
3
2
1
0
0 0 0 0 1 1
0
0
0
s
p
3
5
5
5
6
6
1
11
x
0 0 0 0 0
0 0 1 1 0
Description
IRP is placed in the PFC. This instruction also moves PGIE to GIE. PGIE is
unchanged.
If two branches are in the same execute packet and are both taken, behavior
is undefined.
Two conditional branches can be in the same execute packet if one branch
uses a displacement and the other uses a register, IRP, or NRP. As long as only
one branch has a ture condition, the code executes in a well-defined way.
Execution
if (cond)
IRP
→
PFC
else
nop
Notes:
1) This instruction executes on .S2 only. PFC is the program fetch counter.
2) Refer to the chapter on interrupts for more information on IRP, PGIE, and
GIE.
3) The execute packets in the delay slots of a branch cannot be interrupted.
This is true regardless of whether the branch is taken.
Target Instruction
Pipeline
Stage
E1
PS
PW
PR
DP
DC
E1
Read
IRP
Written
Branch
Taken
n
Unit in use
.S2
Instruction Type
Branch
Pipeline