mts
Move To Special Purpose Register
mts
1 0 0 1 0 1 0 0 0 0 0
0
6
Description
Copies the contents of register rD into the special purpose register rS. The special purpose registers
TLBLO and TLBHI are used to copy to the Unified TLB entry indexed by TLBX.
When MicroBlaze is configured to use an MMU (C_USE_MMU >= 1) this instruction is privileged.
This means that if the instruction is attempted in User Mode (MSR[UM] = 1) a Privileged Instruction
exception occurs.
With low-latency interrupt mode (C_USE_INTERRUPT = 2), the Interrupt_Ack output port is set to
11 if the MSR{IE] bit is set by executing this instruction.
Pseudocode
Registers Altered
•
•
Latency
•
Notes
When writing MSR using MTS, all bits take effect one cycle after the instruction has been executed.
An MTS instruction writing MSR should never be followed back-to-back by an instruction that uses
the MSR content. When clearing the IE bit, it is guaranteed that the processor will not react to any
interrupt for the subsequent instructions. When setting the EIP or BIP bit, it is guaranteed that the
processor will not react to any interrupt or normal hardware break for the subsequent instructions.
MicroBlaze Processor Reference Guide
UG081 (v14.7)
rS, rA
rA
11
if MSR[UM] = 1 then
ESR[EC] ← 00111
else
switch (rS)
case 0x0001 : MSR
case 0x0007 : FSR
case 0x0800 : SLR
case 0x0802 : SHR
case 0x1000 : PID
case 0x1001 : ZPR
case 0x1002 : TLBX
case 0x1003 : TLBLO ← (rA)
case 0x1004 : TLBHI ← (rA)
case 0x1005 : TLBSX ← (rA)
if (rS) = 0x0001 and (rA) & 2
← 11
Interrupt_Ack
rS
ESR[EC], in case a privileged instruction exception is generated
1 cycle
www.xilinx.com
1 1
16
18
← (rA)
← (rA)
← (rA)
← (rA)
← (rA)
← (rA)
← (rA)
Instructions
rS
31
219
Send Feedback
Need help?
Do you have a question about the MicroBlaze and is the answer not in the manual?