You copied the Doc URL to your clipboard.

2.3.2. Configuration

Two registers provide ThumbEE configuration:

  • ThumbEE Configuration Register. This contains a single bit, the ThumbEE configuration control bit, XED.

  • ThumbEE HandlerBase Register. This contains the base address for ThumbEE handlers.

    A handler is a short, commonly executed, sequence of instructions. It is typically, but not always, associated directly with one or more bytecodes or other intermediate language elements.

ThumbEE Configuration Register

The purpose of the ThumbEE Configuration Register is to control access to the ThumbEE HandlerBase Register.

The ThumbEE Configuration Register is:

  • in CP14 register c0

  • a 32-bit register, with access rights that depend on the current privilege:

    • the result of an unprivileged write to the register is Undefined

    • unprivileged reads, and privileged reads and writes, are permitted.

Figure 2.2 shows the bit arrangement of the ThumbEE Configuration Register.

Figure 2.2. ThumbEE Configuration Register format

Figure 2.2. ThumbEE Configuration Register format

Table 2.1 shows how the bit values correspond with the ThumbEE Configuration Register.

Table 2.1. ThumbEE Configuration Register bit functions
BitsFieldFunction
[31:1]-Reserved. Unpredictable (UNP), Should-Be-Zero (SBZ).
[0]XED

eXecution Environment Disable bit. Controls unprivileged access to the ThumbEE HandlerBase Register:

0 = Unprivileged access permitted. See Access to ThumbEE registers for details.

1 = Unprivileged access disabled.

The reset value of this bit is 0.


Any change to this register is only guaranteed to be visible to subsequent instructions after the execution of an ISB instruction. However, a read of this register always returns the last value written to the register.

To access the ThumbEE Configuration Register, read or write CP14 with:

MRC p14, 6, <Rd>, c0, c0, 0 ; Read ThumbEE Configuration Register
MCR p14, 6, <Rd>, c0, c0, 0 ; Write ThumbEE Configuration Register

ThumbEE HandlerBase Register

The purpose of the ThumbEE HandlerBase Register is to hold the base address for ThumbEE handlers.

The ThumbEE HandlerBase Register is:

  • in CP14 register c0

  • a 32-bit read/write register, with unprivileged access that depends on the value of the ThumbEE Configuration Register. See Access to ThumbEE registers.

Figure 2.3 shows the bit arrangement of the ThumbEE HandlerBase Register.

Figure 2.3. ThumbEE HandlerBase Register format

Figure 2.3. ThumbEE HandlerBase Register format

Table 2.2 shows how the bit values correspond with the ThumbEE HandlerBase Register.

Table 2.2. ThumbEE HandlerBase Register bit functions
BitsFieldFunction
[31:2]HandlerBaseThe address of the ThumbEE Handler_00 implementation. This is the address of the first of the ThumbEE handlers. The reset value of this field is Unpredictable.
[1:0]-

Reserved. UNP, SBZ.


Any change to this register is only guaranteed to be visible to subsequent instructions after the execution of an ISB instruction. However, a read of this register always returns the last value written to the register.

To access the ThumbEE HandlerBase Register, read or write CP14 with:

MRC p14, 6, <Rd>, c1, c0, 0 ; Read ThumbEE HandlerBase Register
MCR p14, 6, <Rd>, c1, c0, 0 ; Write ThumbEE HandlerBase Register

Access to ThumbEE registers

Table 2.3 shows the access permissions for the ThumbEE registers, and how unprivileged access to the ThumbEE HandlerBase Register depends on the value of the ThumbEE Configuration Register.

Table 2.3. Access to ThumbEE registers
 Unprivileged accessPrivileged access
RegisterXED == 0[1]XED == 1a 
ThumbEE ConfigurationRead access permitted, write access UndefinedRead access permitted, write access UndefinedRead and write access permitted
ThumbEE HandlerBaseRead and write access permittedRead and write access UndefinedRead and write access permitted

[1] Value of XED bit in the ThumbEE Configuration Register, see ThumbEE Configuration Register.