Branch Target Register - 2025.1 English - UG984

MicroBlaze Processor Reference Guide (UG984)

Document ID
UG984
Release Date
2025-05-29
Version
2025.1 English

The Branch Target Register (BTR) only exists if the MicroBlaze processor is configured to use exceptions. The register stores the branch target address for all delay slot branch instructions executed while MSR[EIP] = 0. If an exception is caused by an instruction in a delay slot (that is, ESR[DS]=1), the exception handler should return execution to the address stored in BTR instead of the normal exception return address stored in R17. When read with the MFS instruction, the BTR is specified by setting Sa = 0x000B. The BTR register is illustrated in the following figure and the following table provides bit descriptions and reset values.

When 64-bit MicroBlaze is enabled (C_DATA_SIZE = 64), the Branch Target Register has up to 64 bits, according to the C_ADDR_SIZE parameter, otherwise it has 32 bits.

Figure 1. BTR
Table 1. Branch Target Register (BTR)
Bits 1 Name Description Reset Value

0:31

0:C_ADDR_SIZE-1

BTR

Branch target address used by handler when returning from an exception caused by an instruction in a delay slot.

Read-only

0x0
  1. C_ADDR_SIZE bits with 64-bit MicroBlaze (C_DATA_SIZE = 64) and 32 bits otherwise.