
TM1300 Data Book
Philips Semiconductors
A-50
PRODUCT SPECIFICATION
IEEE status ags from oating-point compare
less-than or equal
pseudo-op for fgeqags
SYNTAX
[ IF r
guard ] fleqflags rsrc1 rsrc2
→ rdest
FUNCTION
if r
guard then
r
dest
← ieee_ags((oat)rsrc1 <= (oat)rsrc2)
ATTRIBUTES
Function unit
fcomp
Operation code
147
Number of operands
2
Modier
No
Modier range
—
Latency
1
Issue slots
3
DESCRIPTION
The fleqflags operation is a pseudo operation transformed by the scheduler into an fgeqflags with the
arguments exchanged (fleqflags’s r
src1 is fgeqflags’s rsrc2 and vice versa). (Note: pseudo operations cannot
be used in assembly source les.)
The fleqflags 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 fleqflags 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)
fleqflags r30 r40
→ r80
r80
← 0
r30 = 0x40400000 (3.0)
fleqflags r30 r30
→ r90
r90
← 0
r10 = 0, r60 = 0x3f800000 (1.0),
r30 = 0x40400000 (3.0)
IF r10 fleqflags r60 r30
→ r100 no change, since guard is false
r20 = 1, r60 = 0x3f800000 (1.0),
r30 = 0x40400000 (3.0)
IF r20 fleqflags r60 r30
→ r110 r110 ← 0
r30 = 0x40400000 (3.0),
r60 = 0x3f800000 (1.0)
fleqflags r30 r60
→ r120
r120
← 0
r30 = 0x40400000 (3.0),
r61 = 0xffffffff (QNaN)
fleqflags r30 r61
→ r121
r121
← 0x10 (INV)
r50 = 0x7f800000 (+INF)
r55 = 0xff800000 (-INF)
fleqflags r50 r55
→ r125
r125
← 0
r60 = 0x3f800000 (1.0),
r65 = 0x00400000 (5.877471754e-39)
fleqflags r60 r65
→ r126
r126
← 0x20 (IFZ)
r50 = 0x7f800000 (+INF)
fleqflags r50 r50
→ r127
r127
← 0
OFZ
IFZ
INV
OVF
UNF
INX
DBZ
0
1
2
3
4
5
6
7
31
00
SEE ALSO
fleq ileq fgeqflags
readpcsw
fleqflags