Instructions
www.ti.com
ADDF32 RdH, ReH, RfH
MOV32 mem32, RaH
32-bit Floating-Point Addition with Parallel Move
Operands
RdH
floating-point destination register for the ADDF32 (R0H to R7H)
ReH
floating-point source register for the ADDF32 (R0H to R7H)
RfH
floating-point source register for the ADDF32 (R0H to R7H)
mem32
pointer to a 32-bit memory location. This will be the destination of the MOV32.
RaH
floating-point source register for the MOV32 (R0H to R7H)
Opcode
LSW: 1110 0000 0001 fffe
MSW: eedd daaa
mem32
Description
Perform an ADDF32 and a MOV32 in parallel. Add RfH to the contents of ReH and store
the result in RdH. In parallel move the contents of RaH to the 32-bit location pointed to
by mem32. mem32 addresses memory using any of the direct or indirect addressing
modes supported by the C28x CPU.
RdH = ReH + RfH,
[mem32] = RaH
Flags
This instruction modifies the following flags in the STF register:
Flag
TF
ZI
NI
ZF
NF
LUF
LVF
Modified
No
No
No
No
No
Yes
Yes
The STF register flags are modified as follows:
•
LUF = 1 if ADDF32 generates an underflow condition.
•
LVF = 1 if ADDF32 generates an overflow condition.
Pipeline
ADDF32 is a 2 pipeline-cycle instruction (2p) and MOV32 takes a single cycle. That is:
ADDF32
RdH, ReH, RfH
; 2 pipeline cycles (2p)
||
MOV32
mem32, RaH
; 1 cycle
; <-- MOV32 completes, mem32 updated
NOP
; 1 cycle delay or non-conflicting instruction
; <-- ADDF32 completes, RdH updated
NOP
Any instruction in the delay slot must not use RdH as a destination register or use RdH
as a source operand.
Example
ADDF32
R3H, R6H, R4H
; (A) R3H = R6H + R4H and R7H = I3
|| MOV32
R7H, *-SP[2]
;
; <-- R7H valid
SUBF32
R6H, R6H, R4H
; (B) R6H = R6H - R4H
; <-- ADDF32 (A) completes, R3H valid
SUBF32
R3H, R1H, R7H
; (C) R3H = R1H - R7H and store R3H (A)
|| MOV32
*+XAR5[2], R3H
;
; <-- SUBF32 (B) completes, R6H valid
; <-- MOV32 completes, (A) stored
ADDF32
R4H, R7H, R1H
; R4H = D = R7H + R1H and store R6H (B)
|| MOV32
*+XAR5[6], R6H
;
; <-- SUBF32 (C) completes, R3H valid
; <-- MOV32 completes, (B) stored
MOV32
*+XAR5[0], R3H
; store R3H (C)
; <-- MOV32 completes, (C) stored
; <-- ADDF32 (D) completes, R4H valid
MOV32
*+XAR5[4], R4H
; store R4H (D)
; <-- MOV32 completes, (D) stored
40
Instruction Set
SPRUEO2A – June 2007 – Revised August 2008
Summary of Contents for TMS320C28 series
Page 2: ...2 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 12: ...Introduction 12 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 20: ...CPU Register Set 20 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...
Page 136: ...Instruction Set 136 SPRUEO2A June 2007 Revised August 2008 Submit Documentation Feedback ...