MMOV32 mem32, MSTF
Move 32-Bit MSTF Register to Memory
Operands
MSTF
floating-point status register
mem32
32-bit destination memory
Opcode
LSW: mmmm mmmm mmmm mmmm
MSW: 0111 0111 0100 addr
Description
Copy the CLA's floating-point status register, MSTF, to memory.
[mem32] = MSTF;
Flags
This instruction does not modify flags in the MSTF register:
Flag
TF
ZF
NF
LUF
LVF
Modified
No
No
No
No
No
Pipeline
This is a single-cycle instruction.
One of the uses of this instruction is to save off the return PC (RPC) prior to calling a
function. The decision to jump to a function is made when the MCCNDD is in the decode2
(D2) phase of the pipeline; the RPC is also updated in this phase. The actual jump
occurs three cycles later when MCCNDD enters its execution (E) phase. The user must,
therefore, save the old RPC before MCCNDD updates it in the D2 phase, that is, it must
save MSTF three instructions prior to the function call.
Example
The following example illustrates the pipeline flow for the context save (of the flags and
RPC) prior to a function call. The first column in the comments shows the pipeline stages
for the MMOV32 instruction while the second column pertains to the MCCNDD instruction.
MMOV32 @_temp, MSTF ; D2| |
MNOP ; R1|F1| MCCNDD is fetched
MNOP ; R2|F2|
MNOP ; E |D1|
MCCNDD _bar, UNC ; W |D2| old RPC written to memory,
; | | RPC updated with MPC+1
MNOP ; |R1|
MNOP ; |R2|
MNOP ; |E | execution branches to _bar
See also
Control Law Accelerator (CLA)
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
TMS320x2806x Microcontrollers
657
Copyright © 2022 Texas Instruments Incorporated
Summary of Contents for TMS320 2806 Series
Page 2: ......