B IRP Branch Using an Interrupt Return Pointer

 

 

 

 

 

 

 

Pipeline

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Target Instruction

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pipeline

 

 

 

 

 

 

 

 

 

 

E1

PS

PW

PR

DP

DC

E1

 

 

Stage

 

 

 

 

 

 

 

 

 

 

 

 

 

Read

IRP

 

 

 

 

 

 

 

 

 

Written

 

 

 

 

 

 

 

 

 

 

Branch

 

 

 

 

 

 

n

 

 

Taken

 

 

 

 

 

 

 

 

 

 

Unit in use

.S2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instruction Type

Branch

 

 

 

 

 

 

 

 

Delay Slots

5

 

 

 

 

 

 

 

 

Example

Table 3−15 gives the program counter values and actions for the following

 

code example. Given that an interrupt occurred at

 

 

 

 

PC =

0000 1000

IRP =

0000 1000

0000

0020

B

.S2

IRP

0000

0024

ADD

.S1

A0, A2, A1

0000

0028

MPY

.M1

A1, A0, A1

0000

002C

NOP

 

 

0000

0030

SHR

.S1

A1, 15, A1

0000

0034

ADD

.L1

A1, A2, A1

0000

0038

ADD

.L2

B1, B2, B3

Table 3−15. Program Counter Values for B IRP Instruction

Cycle

Program Counter Value

Action

 

 

 

Cycle 0

0000 0020

Branch command executes

 

 

(target code fetched)

Cycle 1

0000 0024

 

Cycle 2

0000 0028

 

Cycle 3

0000 002C

 

Cycle 4

0000 0030

 

Cycle 5

0000 0034

 

Cycle 6

0000 1000

Branch target code executes

 

 

 

3-74

Instruction Set

SPRU733

Page 134
Image 134
Texas Instruments TMS320C67X/C67X+ DSP manual 15. Program Counter Values for B IRP Instruction