Instructions
www.ti.com
SUBF32 RaH, #16FHi, RbH
32-bit Floating Point Subtraction
Operands
RaH
floating-point destination register (R0H to R1)
#16FHi
A 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0.
RbH
floating-point source register (R0H to R1)
Opcode
LSW: 1110 1000
11II IIII
MSW: IIII IIII
IIbb baaa
Description
Subtract RbH from the floating-point value represented by the immediate operand. Store
the result of the addition in RaH.
#16FHi is a 16-bit immediate value that represents the upper 16-bits of an IEEE 32-bit
floating-point value. The low 16-bits of the mantissa are assumed to be all 0. #16FHi is
most useful for representing constants where the lowest 16-bits of the mantissa are 0.
Some examples are 2.0 (0x40000000), 4.0 (0x40800000), 0.5 (0x3F000000), and -1.5
(0xBFC00000). The assembler will accept either a hex or float as the immediate value.
That is, the value -1.5 can be represented as #-1.5 or #0xBFC0.
RaH = #16FHi:0 - RbH
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 MPYF32 generates an underflow condition.
•
LVF = 1 if MPYF32 generates an overflow condition.
Pipeline
This is a 2 pipeline cycle (2p) instruction. That is:
SUBF32
RaH, #16FHi, RbH ; 2 pipeline cycles (2p)
NOP
; 1 cycle delay or non-conflicting instruction
; <-- SUBF32 completes, RaH updated
NOP
Any instruction in the delay slot must not use RaH as a destination register or as a
source operand.
Example
Calculate Y = 2.0 - (A + B):
MOVL
XAR4, #A
MOV32
R0H,
*XAR4
; Load R0H with A
MOVL
XAR4, #B
MOV32
R1H,
*XAR4
; Load R1H with B
ADDF32 R0H,R1H,R0H
; Add A + B and in parallel
NOP
; <-- ADDF32 complete
SUBF32 R0H,#2.0,R2H
; Subtract (A + B) from 2.0
NOP
; <-- SUBF32 completes
MOV32
*XAR4,R0H
; Store the result
See also
SUBF32 RdH, ReH, RfH || MOV32 RaH, mem32
SUBF32 RdH, ReH, RfH || MOV32 mem32, RaH
MPYF32 RaH, RbH, RcH || SUBF32 RdH, ReH, RfH
124
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 ...