
TM1300 Data Book
Philips Semiconductors
A-52
PRODUCT SPECIFICATION
IEEE status ags from oating-point compare
less-than
pseudo-op for fgtrags
SYNTAX
[ IF r
guard ] flesflags rsrc1 rsrc2
→ rdest
FUNCTION
if r
guard then
r
dest
← ieee_ags((oat)rsrc1 < (oat)rsrc2)
ATTRIBUTES
Function unit
fcomp
Operation code
145
Number of operands
2
Modier
No
Modier range
—
Latency
1
Issue slots
3
DESCRIPTION
The flesflags operation is a pseudo operation transformed by the scheduler into an fgtrflags with the
arguments exchanged (flesflags’s r
src1 is fgtrflags’s rsrc2 and vice versa). (Note: pseudo operations cannot
be used in assembly source les.)
The flesflags operation computes the IEEE exceptions that would result from computing the comparison
r
src1<rsrc2 and stores a bit vector representing the exception ags into rdest. The argument values are in IEEE
single-precision oating-point format; the result is an integer bit vector. The bit vector stored in r
dest has the same
format as the IEEE exception bits in the PCSW. The exception ags in PCSW are left unchanged by this operation. If
an argument is denormalized, zero is substituted before computing the comparison, and the IFZ bit in the result is set.
The flesflags operation optionally takes a guard, specied in r
guard. If a guard is present, its LSB controls the
modication of the destination register. If the LSB of r
guard is 1, rdest is written; otherwise, rdest is not changed.
EXAMPLES
Initial Values
Operation
Result
r30 = 0x40400000 (3.0), r40 = 0 (0.0)
flesflags r30 r40
→ r80
r80
← 0
r30 = 0x40400000 (3.0)
flesflags r30 r30
→ r90
r90
← 0
r10 = 0, r60 = 0x3f800000 (1.0),
r30 = 0x40400000 (3.0)
IF r10 flesflags r60 r30
→ r100 no change, since guard is false
r20 = 1, r60 = 0x3f800000 (1.0),
r30 = 0x40400000 (3.0)
IF r20 flesflags r60 r30
→ r110 r110 ← 0
r30 = 0x40400000 (3.0),
r60 = 0x3f800000 (1.0)
flesflags r30 r60
→ r120
r120
← 0
r30 = 0x40400000 (3.0),
r61 = 0xffffffff (QNaN)
flesflags r30 r61
→ r121
r121
← 0x10 (INV)
r50 = 0x7f800000 (+INF)
r55 = 0xff800000 (-INF)
flesflags r50 r55
→ r125
r125
← 0
r60 = 0x3f800000 (1.0),
r65 = 0x00400000 (5.877471754e-39)
flesflags r60 r65
→ r126
r126
← 0x20 (IFZ)
r50 = 0x7f800000 (+INF)
flesflags r50 r50
→ r127
r127
← 0
OFZ
IFZ
INV
OVF
UNF
INX
DBZ
0
1
2
3
4
5
6
7
31
00
SEE ALSO
fles iles fleqflags
readpcsw
flesflags