DPTRUNC Convert Double-Precision Floating-Point Value to Integer With Truncation
3-108 Instruction Set SPRU733
Convert Double-Precision Floating-Point Value to Integer
With Truncation
DPTRUNC
Syntax DPTRUNC (.unit) src2, dst
.unit = .L1 or .L2
Compatibility C67x and C67x+ CPU
Opcode
31 29 28 27 23 22 18 17 13 12 11 5 4 3 2 1 0
creg z dst src2 0 0 0 0 0 x 0 0 0 0 0 0 1 1 1 0 s p
3 1 5 5 1 1 1
Opcode map field used... For operand type... Unit
src2
dst
dp
sint
.L1, .L2
Description The 64-bit double-precision value in src2 is converted to an integer and placed
in dst. This instruction operates like DPINT except that the rounding modes in
the FADCR are ignored; round toward zero (truncate) is always used. The
64-bit operand is read in one cycle by using the src2 port for the 32 MSBs and
the src1 port for the 32 LSBs.
Execution if (cond) int(src2) → dst
else nop
Notes:
1) If src2 is NaN, the maximum signed integer (7FFF FFFFh or
8000 0000h) is placed in dst and the INVAL bit is set.
2) If src2 is signed infinity or if overflow occurs, the maximum signed integer
(7FFF FFFFh or 8000 0000h) is placed in dst and the INEX and OVER bits
are set. Overflow occurs if src2 is greater than 2
31
− 1 or less than −2
31
.
3) If src2 is denormalized, 0000 0000h is placed in dst and the INEX and
DEN2 bits are set.
4) If rounding is performed, the INEX bit is set.