SPRUIG5E January   2018  – March 2023 TDA4VM , TDA4VM-Q1

 

  1.   Abstract
  2. 1About This Document
    1. 1.1 Related Documents
    2. 1.2 Trademarks
  3. 2Migrating C Source from C6000 to C7000
    1. 2.1  Compiler Options
    2. 2.2  Native Vector Data Types
    3. 2.3  Type Qualifiers: near and far
    4. 2.4  64-bit long Type
    5. 2.5  References to Control Registers
    6. 2.6  Memory-Mapped Peripherals
    7. 2.7  Run-Time Support
    8. 2.8  Contents of Migration Header File c6x_migration.h
      1. 2.8.1 Supported Macros
      2. 2.8.2 Non-Supported Macros
      3. 2.8.3 Legacy Data Types
      4. 2.8.4 Legacy Intrinsics
    9. 2.9  Galois Field Multiply Instructions
    10. 2.10 Performance Considerations for Migrated Code
      1. 2.10.1 UNROLL Pragma
      2. 2.10.2 Subvector Access
      3. 2.10.3 16x16 and 16x32 Bit Multiplies
      4. 2.10.4 __x128_t Type
      5. 2.10.5 Unsigned Array Offsets
      6. 2.10.6 Streaming Engine and Streaming Address Generator
      7. 2.10.7 Additional Optimization Guidance
  4. 3Host Emulation
  5. 4Revision History
    1.     29
    2.     30

Legacy Data Types

Some source files may reference the following data types.

  • __float2_t — This is a "container" for 2 float values. It is typedefed to double in both C6000 and C7000. All C6000 intrinsics that work with __float2_t are declared in c6x_migration.h.
  • __x128_t — On C6000, this is a vector “container" type, a special 128-bit sized struct vector. On C7000, this type is defined in c6x_migration.h. All C6000 intrinsics that work with __x128_t are declared in c6x_migration.h.
  • __int40_t — On C6000, this is a special first-class integer type, like int and short. It has 40 bits of precision. On C6000, it is valid to use this type in native operations (such as +, -) as well as with intrinsics. This type is not defined for C7000, and so its corresponding operations are not supported. An intrinsic for 40-bit saturation of a 64-bit value is available (VSATLW) for C7000.