beautypg.com

1 branch instructions with delay slots – FUJITSU MB91F109 FR30 User Manual

Page 72

background image

48

CHAPTER 2 CPU

2.7.1

Branch Instructions with Delay Slots

A branch instruction causes the program to branch and execute the instruction at the
branch destination after the instruction (called the delay slot) placed immediately after
the branch instruction is executed.

Branch Instructions with Delay Slots

The following instructions execute branch operation with a delay slot:

Theory of Operation of Branch Instructions with Delay Slots

A branch instruction causes the program to branch and execute the instruction at the branch
destination after the instruction (called the delay slot) placed immediately after the branch
instruction is executed.

Since a delay slot instruction is executed before branching, the execution speed seems one
cycle. However, when a valid instruction cannot be put at the delay slot, the NOP instruction
must be provided.

[Example]

For a conditional branch instruction, the instruction placed at the delay slot is executed whether
the branch condition is satisfied or not.

For delayed branch instructions, the execution order of some instructions seems to be reversed.
This is only applicable to PC updating. Other operations, such as register updating and
referencing, are executed in order of coding.

Concrete examples are shown below.

JMP:D

@Ri

CALL:D

label12

CALL:D

@Ri

RET:D

BRA:D

label9

BNO:D

label9

BEQ:D

label9

BNE:D

label9

BC:D

label9

BNC:D

label9

BN:D

label9

BP:D

label9

BV:D

label9

BNV:D

label9

BLT:D

label9

BGE:D

label9

BLE:D

label9

BGT:D

label9

BLS:D

label9

BHI:D

label9

;

Instruction list

ADD

R1, R2

;

BRA:D

LABEL

; Branch instruction

MOV

R2, R3

; Delayed slot---Executed before branching

:

LABEL :

ST

R3, @R4

; Branch destination