Refining C/C++ Code
3-18
Table 3–6. TMS320C6000 C/C++ Compiler Intrinsics (Continued)
C Compiler Intrinsic
Device
Description
Assembly
Instruction
int_dpint(double);
DPINT
Converts 64-bit double to 32-bit signed in-
teger, using the rounding mode set by the
CSR register.
’C67x
int _ext(int
src2, uint csta, int cstb);
EXT
Extracts the specified field in src2, sign-ex-
tended to 32 bits. The extract is performed
by a shift left followed by a signed shift
right; csta and cstb are the shift left and
shift right amounts, respectively.
int _extr(int
src2, int src1);
EXT
Extracts the specified field in src2, sign-ex-
tended to 32 bits. The extract is performed
by a shift left followed by a signed shift
right; csta and cstb are the shift left and
shift right amounts, respectively.
uint _extu(uint
src2, uint csta, uint cstb);
EXTU
Extracts the specified field in src2, zero-
extended to 32 bits. The extract is per-
formed by a shift left followed by a un-
signed shift right; csta and cstb are the
shift left and shift right amounts, respec-
tively.
uint _extur(uint
src2, int src1);
EXTU
Extracts the specified field in src2, zero-
extended to 32 bits. The extract is per-
formed by a shift left followed by a un-
signed shift right; csta and cstb are the
shift left and shift right amounts, respec-
tively.
uint _ftoi(float);
Reinterprets the bits in the float as an un-
signed integer.
(Ex: _ftoi(1.0) == 1065353216U)
int _gmpy4 (int
src1, int src2);
GMPY4
Performs the galois field multiply on 4 val-
ues in src1 with 4 parallel values in src2.
The 4 products are packed into the return
value.
’C64x
uint _hi(double);
Returns the high 32 bits of a double as an
integer.
double _itod(uint, uint);
Creates a new double register pair from
two unsigned integers.
Note:
Instructions not specified with a device apply to all ’C6000 devices.