TriCore
®
TC1.6P & TC1.6E
32-bit Unified Processor Core
Instruction Set
V1.0 2013-07
User Manual (Volume 2) 3-415
Q31TOF
Fraction to Floating-point
Description
Converts the D[a] from Q31 fraction format to floating-point format, then adds D[b] to the exponent and stores the
resulting value in D[c]. The exponent adjustment is a 9-bit two’s complement number taken from D[b][8:0], with a
value in the range [-256, 255]. D[b][31:9] is ignored. Q31 fraction format is a 32-bit two’s complement format which
represents a value in the range [-1,1).
• Bit 31 represents -1
• Bit 30 represents +1/2
• Bit 29 represents +1/4
•etc.
Q31TOFD[c], D[a], D[b] (RR)
precise_result = mul(q_real(D[a]),2
D[b][8:0]
);
rounded_result = ieee754_round(precise_result, PSW.RM);
result = ieee754_32bit_format(rounded_result);
D[c] = result[31:0];
Exception Flags
Examples
q31tof d3, d1, d2
See Also
FTOQ31, FTOQ31Z
FS if(set_FX) then PSW.FS = 1 else PSW.FS = 0;
FI Not set by this instruction.
FV Not set by this instruction.
FZ Not set by this instruction.
FU if(fp_abs(precise_result) < 2
-126
) then set_FU = 1 else set_FU = 0;
if(set_FU) then PSW.FU = 1;
FX if(precise_result != f_real(result)) then set_FX = 1 else set_FX = 0;
if(set_FX) then PSW.FX = 1;
31
c
28 27
15
H
20 19
-
18 17
1
H
16 15
b
12 11
a
8 7
4B
H
0