![]() ![]() | |||
![]() ![]() | ![]() ![]() | ||
| |||
| Home > Programmer’s Model > ThumbEE instruction set > 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.
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.
Table 2.1 shows how the bit values correspond with the ThumbEE Configuration Register.
Table 2.1. ThumbEE Configuration Register bit functions
| Bits | Field | Function |
|---|---|---|
| [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
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.
Table 2.2 shows how the bit values correspond with the ThumbEE HandlerBase Register.
Table 2.2. ThumbEE HandlerBase Register bit functions
| Bits | Field | Function |
|---|---|---|
| [31:2] | HandlerBase | The 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
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 access | Privileged access | ||
|---|---|---|---|
| Register | XED == 0[1] | XED == 1a | |
| ThumbEE Configuration | Read access permitted, write access Undefined | Read access permitted, write access Undefined | Read and write access permitted |
| ThumbEE HandlerBase | Read and write access permitted | Read and write access Undefined | Read and write access permitted |
[1] Value of XED bit in the ThumbEE Configuration Register, see ThumbEE Configuration Register. | |||