Last Updated: Fri Jan 8 04:10:12 CST 1999

COMPILER 2.00,2.10,2.11

SDSsq04205: INTERNAL ERROR: Could not schedule any instruction (v2.00)

SDSsq04214: Speculative execution option (-mh) incorrect (v2.00)

SDSsq04231: Reported live across number reported with the -mw option is incorrect (v2.00)

SDSsq04233: Compiler removes an instruction from code before a software pipelined loop (v2.00)

SDSsq04250: array indexing with _ext() intrinsic broken (v2.00)

SDSsq04262: Using a pointer to access an array of >= 32 with in a structure with optimization 2, results in an error. (v2.00)

SDSsq04308: Very long cl6x command line mishandles spaces embedded in options (v2.00)

SDSsq04312: assembly optimizer allows memory bank hit (v2.00)

SDSsq04317: incorrect delay slots when writing to ICR (v2.00)

SDSsq04341: PC and solaris versions of .asm files are different when a 'c' file is compiled on PC and solaris. (v2.00)

SDSsq04357: Crashes when included code is compiled on PC (v2.00)

SDSsq04374: M unit conflict for C67xx (v2.00)

SDSsq04632: PATH not correctly set when installing v2.0 on a PC (v2.00)

SDSsq04733: _nassert intrinsic does not always pass information to optimizer. (v2.00)

SDSsq04866: Incorrectly uses predication on if block which contains "asm" statements (v2.10)

SDSsq04867: Use of DATA_SECTION pragma can lead to illegal assembly output (v2.10)

SDSsq04877: Sometimes the -mw loop comment block gets deleted (v2.10)

SDSsq04883: compiling code with -o3 sometimes results in erroneous use of X unit (v2.10)

SDSsq04884: Compiler does not branch around code that contains an idle instruction. (v2.10)

SDSsq04982: Incorrectly sign extends unsigned short expression (v2.10)

SDSsq04995: compiler sometimes produces incorrect code when compiled with -o2 (v2.10)

SDSsq05075: When using -o compiler generates incorrect code for pipelined loops (v2.10)

SDSsq05315: Incorrect code is sometimes produced when using optimization. (v2.10)

SDSsq05615: Compiler produces bad .cinit records (or linker misinterprets them?) (v2.10)

SDSsq05800: Core dump occurs when path of a file is greater than or equal to 32. (v2.11)

SDSsq05817: The strtod function produces incorrect results. (v2.11)

SDSsq05913: In some cases the compiler is not able to parallelize mpysp operations. (v2.11)

SDSsq06075: Incorrect opcode is generated in the .lst file. (v2.11)

CODE GENERATOR 2.00,2.10,2.11

SDSsq04222: Conditional array asg has wrong index in software pipeline (v2.00)

SDSsq04232: Branch removed erroneously - condition reg defined (v2.00)

SDSsq04247: INTERNAL ERROR: register allocation failed (v2.00)

SDSsq04248: Code generator sometimes generates non-aligned offsets on loads/stores (v2.00)

SDSsq04254: INTERNAL ERROR: PACKET ERROR from v2.0 Codegen (v2.00)

SDSsq04271: Incorrect execution of for loop in c6x compiler. Working code in 1.10 may not work in 2.00. (v2.00)

SDSsq04366: Call to function free causes invalid memory access (v2.00)

SDSsq04387: Very large trip counts are treated as signed numbers by software pipelining (v2.00)

SDSsq04395: INTERNAL ERROR: Could not schedule any instruction (v2.00)

SDSsq04441: C6x v.2.00 generates incorrect code that was correct in v.1.10 (v2.00)

SDSsq04452: codegen does not correctly handle CMPxxU instruction and ucst4 (v2.00)

SDSsq04829: Premature licensing problem with the Free Evaluation tools. (v2.00)

SDSsq04927: Compiler generates data accesses with offset too large (v2.10)

SDSsq04994: Code generation error in the MnpRcv() function (v2.10)

SDSsq05812: IF stmt will large # of "||" may cause codegen to fail w/stack overflow (v2.11)

SDSsq05816: Assembler causes the following error message, Erroneous use of X unit. (v2.11)

ASSEMBLER 2.00,2.10,2.11

SDSsq04199: Very long cl6x command line loses -D directives (v2.00)

SDSsq04304: The assembler swaps the 2 words of a .double in big endian (v2.00)

SDSsq04389: SUB instruction without functional unit gets inverted. (v2.00)

SDSsq04475: Complicated macro inside "if 0" block causes false error. (v2.00)

SDSsq04477: ZERO instruction with reversed long register pair crashes assembler (v2.00)

SDSsq05051: assembler crashes/succeeds based on existence/removal of ; comment (v2.10)

SDSsq05122: Comparing labels can cause the assembler to crash (v2.10)

SDSsq05216: The -g option doesn't get line numbers right across FP padding NOPS (v2.10)

SDSsq05378: assembler does not always generate right opcode for 'idle' (v2.10)

SDSsq05784: .align directive in a .sect will make minimum size of section to align (v2.11)

ASSEMBLY OPTIMIZER 2.00,2.10,2.11

SDSsq04311: Idle instruction within .proc section causes codegen phase to die. (v2.00)

SDSsq04342: The asm opt will sometimes ignore that a register is live across a .proc/.endproc region. (v2.00)

SDSsq04419: Error when using subsections in AsmOpt: "Cluttered identifier operand encountered" (v2.00)

SDSsq04425: ADDAD instruction assembled as ADDAW instruction. (v2.00)

SDSsq04525: INTERNAL ERROR: register allocation failed (v2.00)

SDSsq04730: MPYs treated as 4-cycle instructions instead of 2cycle (v2.00)

SDSsq04908: SUB incorrectly placed on D unit (v2.10)

SDSsq04953: request to inline linear assembly functions in C code (v2.10)

SDSsq04985: Incorrect registers setup for complex software pipelined loop (v2.10)

SDSsq05729: Assembly Optimizer doesn't handle .loop/.endloop (v2.10)

ABSOLUTE LISTER 2.00,2.10,2.11

SDSsq04878: The Linker is unable to process file names that have been included. (v2.10)

ARCHIVER 2.00,2.10,2.11

EMULATOR 2.00,2.01,2.03,2.04

SDSsq04288: When change address in new memory window, original memory window address is changed instead. (v2.00)

SDSsq04294: Fails to connect to the target DSP just after the target board is powered up. (v2.00)

SDSsq04309: cannot load program when using Rev2 C6x board and WinNT (v2.00)

SDSsq04348: 'reset' from debugger window does not disable the cache in right order. (v2.00)

SDSsq04450: Reset Failure when breakpoint exists at 0x0 (v2.00)

SDSsq04451: Memory fill command fails with odd start address and word length of 1 (v2.00)

SDSsq04531: a user not in the "administrators" group cannot reset emulator in WinNT (v2.00)

SDSsq04904: 'debugger watch window does not display variable values correctly.' (v2.00)

SDSsq05462: Error message occurs when using 2.03 of the emulator and 2.11 code gen. (v2.03)

EVM 1.10,1.20,1.30

SDSsq04744: EVM Debugger hangs when sending messages over the PCI bus. (v1.10)

SDSsq04779: when attempting to read DRAM by invoking evm6x_hpi_read, the PC hangs. (v1.10)

SDSsq04958: Profiling gives Fatal Error: Cannot start target processor. (v1.10)

SDSsq05267: EVM Install Prob. Insert Disk Labelled EVM6x (v1.10)

SDSsq05268: Grey OK Button (hit next before inserting CDROM) (v1.10)

SDSsq05269: 10 minute delay obtaining incomplete EVM driver info in Device Manager (v1.10)

SDSsq05303: Running EVM6xrst with CC Studio won't always reset the board (v1.10)

SDSsq05478: EVM6x drivers don't install (windows can't see the files) (v1.10)

LINKER 2.00,2.10,2.11

HEX CONVERTER 2.00,2.10,2.11

SDSsq04340: hex6x -order M (MS) and -order L (LS) have no effect on code. (v2.00)

RTS 2.00,2.10,2.11

SDSsq04390: printf format conversion bugs (v2.00)

SDSsq04393: RTS functions readmsg()/writemsg() use 'volatile' incorrectly. (v2.00)

SDSsq04394: fwrite() calls memchr() on every call regardless of buffering mode (v2.00)

SDSsq04707: In the v. 2.00 rts.src, there is defect involving stack pointer initialization. (v2.00)

SDSsq05258: Need to add #undef _INLINE to ceil.c, ceilf.c, floor.c, floorf.c (v2.10)

SDSsq05919: Read() or write() > than 256 chars. overflows CIO's internal comm buffer (v2.11)

DOCUMENTATION 2.00,2.10

SDSsq04328: MC command description is incorrect in Debugger User Manual. (v2.00)

SDSsq04486: CPU & Instruction set guide should be more explicit on certain rules (v2.00)

SDSsq04487: doc does not describe remote entity accessing host port interface (v2.00)

SDSsq04518: Assembly optimizer is requiring functional units for parallel instructions within a section of code. (v2.00)

SDSsq04561: no info about DCC field in CSR in Peripherals Guide (v2.00)

SDSsq04697: The relocation types in the Assembly Lang. Tools guide on pg. A-10 are incorrect. (v2.00)

SDSsq04816: C Compiler Manual PDF file contains invalid page. (v2.00)

SDSsq04894: Documentation error on page 7.22 in the Optimizing 'C' compiler manual. (v2.10)

SDSsq04983: Optimizing C Compiler User's Guide (SPRU187C) contains conflicting descriptions of the stack pointer use. (v2.10)

SIMULATOR 2.00,2.01

SDSsq04277: The SBSRAM cycles are not being counted the same as when counted on the hardware. (v2.00)

SDSsq04318: Changing the sim6x.cfg to boot from DMA, worked in version 1.x Give's Error's. (v2.00)

SDSsq04319: Simulator allows data to be read from internal program memory (v2.00)

SDSsq04349: SSHL is shifting by 6 bits of src1. (v2.00)

SDSsq04371: External events not recognised correctly by simulator (v2.00)

SDSsq04380: M unit conflict is generated in the simulator. (v2.00)

SDSsq04386: Although execution is correct, the simulator displays an incorrect register value. (v2.00)

SDSsq04528: The C6200B01 Compile4 Netmodel does not load correctly into ModelSim (MGC QuickHDL Replacement). (v2.00)

SDSsq04692: simulator locks up when trying to simulate SDRAM timing (v2.00)

SDSsq04717: Simulator gives error when .text and .cinit are in different locations (v2.00)

SDSsq04880: stand-alone simulator load62x does not interpret ST||LD instruction correctly (v2.00)

SDSsq04897: Problems assigning values to bit fields in a structure. (v2.00)

SDSsq04900: bit fields are not displayed correctly in the watch window. (v2.00)

SDSsq04644: 'In the simulator, if you disconnect a pin and reconnect it again, it does not work.' (v2.01)

SDSsq05368: The SMPY instruction does not work in V2.01 simulator. (v2.01)

SDSsq05373: mpysp and mpydp operations do not work after a call to rand() (v2.01)

SDSsq05547: simulator does not always do DMA transfer correctly (v2.01)

DEBUGGER 2.00,2.01,2.03,2.04

SDSsq04287: When change address in new memory window, original memory window address is changed instead. (v2.00)

SDSsq04305: Simulator or emulator errs when loading files linked with "-cr" linker option (v2.00)

SDSsq04355: Problem when 2 or more XDS510WS are connected in a series, the last one does not stay connected. (v2.00)

SDSsq04639: The debugger prints out an extra character between calls to HOSTwrite (v2.00)

SDSsq04746: Profile mode gives windows error when directory length > 63 characters. (v2.01)

SDSsq05755: Debugger does not display long variables in hex format (v2.01)

SDSsq05737: Loading code built for the 6701 produces "invalid coff file" error using (v2.03)

COMPILER 2.00,2.10,2.11

Title: INTERNAL ERROR: Could not schedule any instruction
Bug #ToolVersionFixed?
SDSsq04205 Compiler V2.00 Fix appears in version 2.10.

Bug Description

Compiler sometimes generates an internal error of this kind :
 
INTERNAL ERROR: Could not schedule any instruction
 
This usually occurs at higher optimization levels( -o2 and -o3)
and can be worked around by using lower optimization.


Title: Speculative execution option (-mh) incorrect
Bug #ToolVersionFixed?
SDSsq04214 Compiler V2.00 Fix appears in version 2.10.

Bug Description

 


Title: Reported live across number reported with the -mw option is incorrect
Bug #ToolVersionFixed?
SDSsq04231 Compiler V2.00 Fix appears in version 2.10.

Bug Description

 


Title: Compiler removes an instruction from code before a software pipelined loop
Bug #ToolVersionFixed?
SDSsq04233 Compiler V2.00 Fix appears in version 2.10.

Bug Description

 


Title: array indexing with _ext() intrinsic broken
Bug #ToolVersionFixed?
SDSsq04250 Compiler V2.00 Fix appears in version 2.10.

Bug Description

_ext intrinsic does not always work correctly when used in
array index.
Actually, any variable used to index into an array of structures
has a good chance of not working in release 2.00.


Title: Using a pointer to access an array of >= 32 with in a structure with optimization 2, results in an error.
Bug #ToolVersionFixed?
SDSsq04262 Compiler V2.00 Fix appears in version 2.10.

Bug Description

When using a pointer to access an array of >= 32 words within a
structure the compiler produces an error when using optimisation
level 2.
 
 


Title: Very long cl6x command line mishandles spaces embedded in options
Bug #ToolVersionFixed?
SDSsq04308 Compiler V2.00 Fix scheduled to appear in version 2.10.

Bug Description

New parser reads -d command line options incorrectly when
a command file is needed because of the command length.


Title: assembly optimizer allows memory bank hit
Bug #ToolVersionFixed?
SDSsq04312 Compiler V2.00 Fix appears in version 2.10.

Bug Description

The assembly optimizer mistakenly treats all byte memory
accesses as if they were short accesses; this can lead to
a memory bank hit.
 


Title: incorrect delay slots when writing to ICR
Bug #ToolVersionFixed?
SDSsq04317 Compiler V2.00 Fix appears in version 2.10.

Bug Description

The compiler ignores the required delay slot between a write to
either ISR or ICR and a read from IFR.
 


Title: PC and solaris versions of .asm files are different when a 'c' file is compiled on PC and solaris.
Bug #ToolVersionFixed?
SDSsq04341 Compiler V2.00 Fix appears in version 2.10.

Bug Description

When a 'c' file is compiled on a PC and on solaris using v2.0
compiler, the resulting .asm files (PC and solaris versions) are
different. Used the following compiler switches:
cl6x -o3 -oi0 -mh -mi -mx -k 
 
 
 
 


Title: Crashes when included code is compiled on PC
Bug #ToolVersionFixed?
SDSsq04357 Compiler V2.00 Fix appears in version 2.10.

Bug Description

 


Title: M unit conflict for C67xx
Bug #ToolVersionFixed?
SDSsq04374 Compiler V2.00 Fix appears in version 2.10.

Bug Description

The compiler improperly models the interaction of the pipeline
behaviors of 16x16 multiplies and float/32x32 multiplies.
This is demonstrated by the shorter file ex.sa enclosed.
 


Title: PATH not correctly set when installing v2.0 on a PC
Bug #ToolVersionFixed?
SDSsq04632 Compiler V2.00 Fix appears in version 2.10.

Bug Description

 


Title: _nassert intrinsic does not always pass information to optimizer.
Bug #ToolVersionFixed?
SDSsq04733 Compiler V2.00 Will fix in a future release

Bug Description

The _nassert() intrinsic does not always pass the given
information to the optimizer.


Title: Incorrectly uses predication on if block which contains "asm" statements
Bug #ToolVersionFixed?
SDSsq04866 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

If the compiler removes a "if" statement by predicating the
instructions contained, any asm() statement inside the "if"
will not be predicated, effectively moving it outside the "if".
Workaround: do not use asm() statements.
 


Title: Use of DATA_SECTION pragma can lead to illegal assembly output
Bug #ToolVersionFixed?
SDSsq04867 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

 


Title: Sometimes the -mw loop comment block gets deleted
Bug #ToolVersionFixed?
SDSsq04877 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

BUG DESCRIPTION
===============
 


Title: compiling code with -o3 sometimes results in erroneous use of X unit
Bug #ToolVersionFixed?
SDSsq04883 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

When using optimization levels of -o2 and -o3, the compiler
sometimes generates incorrect assembly code which results in
the erroneous use of X unit.


Title: Compiler does not branch around code that contains an idle instruction.
Bug #ToolVersionFixed?
SDSsq04884 Compiler V2.10 Will fix in a future release

Bug Description

When the compiler uses conditional instructions, it will work
fine for all other instructions but IDLE. It will execute the
idle instruction even though you cannot make an idle instruction
conditional on the C6x.
 
The compiler should always branch around code inside any "if/then"
statement that contains an idle command.
 
Workaround:
-----------
use a function :
void sleep () {asm("\tidle");}
 


Title: Incorrectly sign extends unsigned short expression
Bug #ToolVersionFixed?
SDSsq04982 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

The compiler treats the unsigned short array index expression
as though it were an int.   This bug can happen if you have
an int expression cast to short used to access an array.


Title: compiler sometimes produces incorrect code when compiled with -o2
Bug #ToolVersionFixed?
SDSsq04995 Compiler V2.10 Will fix in a future release

Bug Description

The compiler sometimes produces incorrect code when compiled
with optimization level 2.


Title: When using -o compiler generates incorrect code for pipelined loops
Bug #ToolVersionFixed?
SDSsq05075 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

There is a register live-too-long in the generated loop.
The software pipeliner should detect these problems and move
on to the next iteration interval, but there is a bug in
the representation of the double-precision math instructions
for C67x.  The live-too-long check does not understand that
these instructions read registers in more than one cycle.
 
This problem is restricted to C67x double-precision operations.
 
This bug does exist in the 1.10 and 2.00 compilers, but it
was masked by a large recurrence.  Now that the compiler is
better at aliasing analysis, the bug is exposed.  The
workaround is to turn off software pipelineing.


Title: Incorrect code is sometimes produced when using optimization.
Bug #ToolVersionFixed?
SDSsq05315 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

The compiler will ignore loop-carried memory dependences from a
read to a write (ANTI).   This means that any loop which has
code of the following form could be pipelined incorrectly.
This is more likely to show up in short loops.  The workaround
is to disable software pipelining with "-mu."
 
for(...)
{
   a[i-1] = ...
   ... = a[i];
}


Title: Compiler produces bad .cinit records (or linker misinterprets them?)
Bug #ToolVersionFixed?
SDSsq05615 Compiler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

The elements in a global array of pointers declared in C are
initialized to offset values from the start of $bss rather than
physical addresses.


Title: Core dump occurs when path of a file is greater than or equal to 32.
Bug #ToolVersionFixed?
SDSsq05800 Compiler V2.11 Will fix in a future release

Bug Description

The TI C6xtools C cross-compiler hosted on HP-UX core dumps
(in the routine 'addfile' according to adb on HP-UX)
processing the path of an input C source file.  The core dump
occurs whenever the total path length of an input file
(excluding the root file name) equals or exceeds 32 characters
including the leading and trailing slashes.  It does not
matter how many subdirectories are involved just the total
path lenth.
 
This does not happen on the pc and solaris versions.


Title: The strtod function produces incorrect results.
Bug #ToolVersionFixed?
SDSsq05817 Compiler V2.11 Fix scheduled to appear in version 3.00.

Bug Description

The strtod function produces incorrect results.
(use this example below showing that "end" contains "mpty"
instead of "empty")
 
#include 
#include 
 void main()
{
    char *end;
    double x;
     x = strtod(".23empty", &end);
    printf("x = %f, end = %s\n", x, end);
}
 
strtod was not using or returning in the string pointer parts of
strings that looked like exponents but weren't.


Title: In some cases the compiler is not able to parallelize mpysp operations.
Bug #ToolVersionFixed?
SDSsq05913 Compiler V2.11 Will fix in a future release

Bug Description

In some cases the compiler is not able to parallelize mpysp
operations. This only occurs with -o2 & -o3,  works with -o1.
Example code:
 
#include 
 
void main()
{
  float a,b,a2,b2;
  int i;
 
  a = 10.0;
  b = 20.0;
 
  for (i=0;i<10;i++)
  {
        a = a + 1.0;
        b = b + 1.0;
  }
 
  a2 = a*a;
  b2 = b*b;
 
  printf("Result = %f %f \n", a2,b2);
}
 


Title: Incorrect opcode is generated in the .lst file.
Bug #ToolVersionFixed?
SDSsq06075 Compiler V2.11 Fix scheduled to appear in version 3.00b.

Bug Description

Incorrect addresses are being generated by the assembler,
resulting in the upper bits being lost.
 
MVKH    .S1    peri.timer0,A0  ; peri.timer == 0x1800000
 
Instruction is assembled with peri.timer = 0x800000
 


CODE GENERATOR 2.00,2.10,2.11

Title: Conditional array asg has wrong index in software pipeline
Bug #ToolVersionFixed?
SDSsq04222 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

The compiler is conditionally incrementing the address used
to store to lsf.  This increment should be unconditional;
only the store itself should be conditional.
 


Title: Branch removed erroneously - condition reg defined
Bug #ToolVersionFixed?
SDSsq04232 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

The compiler completely ignored every parallel instruction
during branch removal.  Typically, parallel instructions rarely
reach this stage, except when the user puts parallel
instructions directly into the serial assembly code.


Title: INTERNAL ERROR: register allocation failed
Bug #ToolVersionFixed?
SDSsq04247 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

The compiler sometimes gives an "INTERNAL ERROR : register allocation
failed" message. This happens when a loop counter variable is
stored into an array location indexed by the loop counter itself.
 
 
 
 


Title: Code generator sometimes generates non-aligned offsets on loads/stores
Bug #ToolVersionFixed?
SDSsq04248 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

In software pipelined loops which mix access sizes to memory,
some of the loop transformations performed can cause non-
aligned offsets to be generated for address increments.
 
 
 


Title: INTERNAL ERROR: PACKET ERROR from v2.0 Codegen
Bug #ToolVersionFixed?
SDSsq04254 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

Declaring a static inline function with a static local is
illegal.  The C parser warning has been changed to a fatal
error.


Title: Incorrect execution of for loop in c6x compiler. Working code in 1.10 may not work in 2.00.
Bug #ToolVersionFixed?
SDSsq04271 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

Problem: Incorrect for loop execution in version 2.00
 
Description: Version 2.00 of the C compiler may execute for
loop incorrectly. Code that worked in version 1.10 may not work
in version 2.00.
 
Workaround:
By changing the loop index variable, it is possible to avoid
this problem.
 
This code executes incorrectly:
     for(k = 0; k <= 79; k+=2)
        {
        drp[k] = drp[40+k];
        drp[k+1] = drp[41+k];
     }
 
This code works:
     for(k = 0; k <= 79; k++)
        {
        drp[k] = drp[40+k];
     }


Title: Call to function free causes invalid memory access
Bug #ToolVersionFixed?
SDSsq04366 Code Generator V2.00 Fix appears in version 2.01.

Bug Description

 


Title: Very large trip counts are treated as signed numbers by software pipelining
Bug #ToolVersionFixed?
SDSsq04387 Code Generator V2.00 Will fix in a future release

Bug Description

Very large trip counts are treated as signed numbers by software
pipelining.  The iteration count of a loop will be incorrect.  In the
following example the loop trip will be set to -2 rather than
4294967294.
 
   int a[0xfffffffe];
 
   void main()
   {
      int i;
 
      for (i = 0; i < 0xfffffffe; i++)
         a[i] = 0;
   }


Title: INTERNAL ERROR: Could not schedule any instruction
Bug #ToolVersionFixed?
SDSsq04395 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

As suggested, this is caused by exactly the same bug that is
reported in SDSsq04205 (q.v.)


Title: C6x v.2.00 generates incorrect code that was correct in v.1.10
Bug #ToolVersionFixed?
SDSsq04441 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

 


Title: codegen does not correctly handle CMPxxU instruction and ucst4
Bug #ToolVersionFixed?
SDSsq04452 Code Generator V2.00 Fix appears in version 2.10.

Bug Description

The compiler does not correctly handle the CMPxxU instructions
with an icon.  It generates instructions assuming a 5 bit
sign extended immediate value.  The assembler then happily
assembles it.
 


Title: Premature licensing problem with the Free Evaluation tools.
Bug #ToolVersionFixed?
SDSsq04829 Code Generator V2.00 Will fix in a future release

Bug Description

There is a problem with premature license expiration in the free
C6x evaluation tools.
 
 
 


Title: Compiler generates data accesses with offset too large
Bug #ToolVersionFixed?
SDSsq04927 Code Generator V2.10 Fix scheduled to appear in version 3.00.

Bug Description

BUG DESCRIPTION
===============
 
Compiler generates code in the loop with too large an offset from the
data page, causing the assembler to fail due to "Offset too large"
errors.
 


Title: Code generation error in the MnpRcv() function
Bug #ToolVersionFixed?
SDSsq04994 Code Generator V2.10 Fix scheduled to appear in version 3.00.

Bug Description

Under certain conditions, the compiler could load a value
into a register within a conditional section of the code,
and assume that the register is still alive when it leaves
that basic block.


Title: IF stmt will large # of "||" may cause codegen to fail w/stack overflow
Bug #ToolVersionFixed?
SDSsq05812 Code Generator V2.11 Fix scheduled to appear in version 3.00.

Bug Description

If an IF statement contains a large number of OR's ( "||" ) ,
the code generator may fail with a stack overflow.


Title: Assembler causes the following error message, Erroneous use of X unit.
Bug #ToolVersionFixed?
SDSsq05816 Code Generator V2.11 Fix scheduled to appear in version 3.00.

Bug Description

The following error message is produced by the Assembler:
"test.asm", ERROR! at line 157: [E0800] Erroneous use of X unit
                  ADDAW    .D1      SP,A4,A0    ;|17|
 
Example of code that produces the error:
 
int count = 0;
int x(void)
{
   return count++;
}
 
int y(void)
{
   return count+=10;
}
 
main(void)
{
   int a[2];
   a[x()] += y();
}


ASSEMBLER 2.00,2.10,2.11

Title: Very long cl6x command line loses -D directives
Bug #ToolVersionFixed?
SDSsq04199 Assembler V2.00 Fix appears in version 2.10.

Bug Description

When the shell command line length exceeds 100 characters,
including arguments from a command file, any -D arguments
could be corrupted.
Workaround: keep command lines short, or invoke the assembler
separately.
 
 


Title: The assembler swaps the 2 words of a .double in big endian
Bug #ToolVersionFixed?
SDSsq04304 Assembler V2.00 Fix appears in version 2.10.

Bug Description

The assembler is not swapping the two words of the .double value
as it should be for the lddw instruction.  The bytes within the
words are being swapped correctly, though.
 
 


Title: SUB instruction without functional unit gets inverted.
Bug #ToolVersionFixed?
SDSsq04389 Assembler V2.00 Fix appears in version 2.10.

Bug Description

When the assembler chooses to put a "SUB reg,cst,reg" on the
D unit, it will get reversed unless the user put .D as the
functional unit spec.
The workaround is to always specify the unit on the SUB
instruction; the compiler always does this, so it is not an
issue for the compiler.


Title: Complicated macro inside "if 0" block causes false error.
Bug #ToolVersionFixed?
SDSsq04475 Assembler V2.00 Fix appears in version 2.10.

Bug Description

BUG DESCRIPTION
===============
 


Title: ZERO instruction with reversed long register pair crashes assembler
Bug #ToolVersionFixed?
SDSsq04477 Assembler V2.00 Fix appears in version 2.10.

Bug Description

When ZERO A0:A1 is assembled, the assembler gives an error
message about an illegal pair, and then segfaults
 


Title: assembler crashes/succeeds based on existence/removal of ; comment
Bug #ToolVersionFixed?
SDSsq05051 Assembler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

BUG DESCRIPTION
===============
assembler crashes/succeeds based on existence/removal of ; comment
 
Example: If you remove, add to or shorten the following comment
near the top of the file, you can make the assembler
succeed or fail.
 
;; INPUT hello.cdb alkjfdlakjdflakjsfdlkajdfljasdfljasdklfjaldjfalsjdfaljdfkjdflajdflakjdflkajdflkjsdflajdfljasfldjkasdfjalkdfjasdfjsdfj
 
 


Title: Comparing labels can cause the assembler to crash
Bug #ToolVersionFixed?
SDSsq05122 Assembler V2.10 Fix scheduled to appear in version 3.00.


Title: The -g option doesn't get line numbers right across FP padding NOPS
Bug #ToolVersionFixed?
SDSsq05216 Assembler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

When using -g, the line number symbols get inserted incorrectly
near fetch patckets that are aligned on the proper boundary
using parallel NOPs.
 


Title: assembler does not always generate right opcode for 'idle'
Bug #ToolVersionFixed?
SDSsq05378 Assembler V2.10 Fix scheduled to appear in version 3.00.

Bug Description

BUG DESCRIPTION
===============


Title: .align directive in a .sect will make minimum size of section to align
Bug #ToolVersionFixed?
SDSsq05784 Assembler V2.11 Fix scheduled to appear in version 3.00b.

Bug Description

The .align directive will cause the section size to be a
minimum of the specified alignment.


ASSEMBLY OPTIMIZER 2.00,2.10,2.11

Title: Idle instruction within .proc section causes codegen phase to die.
Bug #ToolVersionFixed?
SDSsq04311 Assembly Optimizer V2.00 Fix appears in version 2.10.

Bug Description

When code containing an idle instruction within a .proc/.endproc
section is passed to the assembly optimizer, it generates the
following error on a PC:
 
>cl6x code.sa
{code.sa}
TMS320C6x Assembly Preprocessor  Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
   "code.sa":  ==> idle1
TMS320C6x ANSI C Codegen         Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
   "code.sa":  ==> idle1 
The instruction at 004565c2 referenced memory at 377c2007
The memory could not be read from>> cannot run cg6x
 
and on Sparc:
 
>cl6x code.sa
{code.sa}
TMS320C6x Assembly Preprocessor  Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
   "code.sa":  ==> idle1
TMS320C6x ANSI C Codegen         Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
   "code.sa":  ==> idle1 
>> abnormal termination of cg6x


Title: The asm opt will sometimes ignore that a register is live across a .proc/.endproc region.
Bug #ToolVersionFixed?
SDSsq04342 Assembly Optimizer V2.00 Fix appears in version 2.10.

Bug Description

The assembly optimizer will sometimes ignore that a register
is live across a .proc/.endproc region.  For example:
 
fft .proc  a6
 
    
 
    .endproc a6
 
In the above example, the assembly optimizer is killing a6,
but a6 is specified as live across the proc region.


Title: Error when using subsections in AsmOpt: "Cluttered identifier operand encountered"
Bug #ToolVersionFixed?
SDSsq04419 Assembly Optimizer V2.00 Fix appears in version 2.10.

Bug Description

When a subsection is specified within a serial assembly file, as shown,
and the file is passed through the codegen tools, the final assembly
generates the error "E0003: Cluttered identifier operand encountered".
 
        .sect ".text:psa"
myfunc: .cproc value, shift
        SHL .S2 value,shift,value
        .return value
        .endproc


Title: ADDAD instruction assembled as ADDAW instruction.
Bug #ToolVersionFixed?
SDSsq04425 Assembly Optimizer V2.00 Fix appears in version 2.10.

Bug Description

The ADDAD instruction when used in a linear assembly file is
assembled to a ADDAW instruction.  For example:
 
        .global test
 
test:        .cproc
        .reg base, ptr, offset
 
        mvk     0x80004300, base
        mvkh    0x80004300, base
        mvk     0x1, offset
        addad   base, offset, ptr  ; expect ptr = 0x80004308
 
        .return ptr
        .endproc
 
here:   b       here
        nop 5
 
is assembled to be:
 
        .line   4
           MVK     .S1     0x80004300,A0 ; |6|
        .line   5
           MVKH    .S1     0x80004300,A0 ; |7|
        .line   6
           MVK     .S1     0x1,A3       ; |8|
        .line   7
           ADDAW   .D1     A0,A3,A4     ; |9|
        .line   10
           B       .S1     L3           ; |12|
           NOP             5


Title: INTERNAL ERROR: register allocation failed
Bug #ToolVersionFixed?
SDSsq04525 Assembly Optimizer V2.00 Fix appears in version 2.10.

Bug Description

 


Title: MPYs treated as 4-cycle instructions instead of 2cycle
Bug #ToolVersionFixed?
SDSsq04730 Assembly Optimizer V2.00 Fix scheduled to appear in version 2.10.

Bug Description

BUG DESCRIPTION
===============
 
MPY instructions are being treated as though they take exactly
4 cycles, by the assembly optimizer, and only in
C67x mode (-mv6700).  This can lead to hardware conflicts
and incorrect code.
 
 


Title: SUB incorrectly placed on D unit
Bug #ToolVersionFixed?
SDSsq04908 Assembly Optimizer V2.10 Fix scheduled to appear in version 3.00.

Bug Description

This is related to the fix for SDSsq04389.  The assembly
optimizer mistakenly treated SUB scst5,src2,dst as though
it were allowed on the D unit.
 
Workaround: put functional units on all SUB instructions.
 
A shorter test case:
fn:     .proc   A5, A6, A7
        SUB             4, A5, A1
        SUB             4, A6, A2
        SUB             4, A7, A3
        .endproc        A1, A2, A3


Title: request to inline linear assembly functions in C code
Bug #ToolVersionFixed?
SDSsq04953 Assembly Optimizer V2.10 Will fix in a future release

Bug Description

Enhancement request for static inlining of linear assembly
functions in C code, to avoid function call overhead.
 


Title: Incorrect registers setup for complex software pipelined loop
Bug #ToolVersionFixed?
SDSsq04985 Assembly Optimizer V2.10 Fix scheduled to appear in version 3.00.

Bug Description

The register allocation was incorrect, because of a bug in
the software pipeliner.   Any time the compiler inserts moves
into the kernel (for various reasons), it can generate
incorrect code.  The workaround is to turn off software
pipelining for this loop.


Title: Assembly Optimizer doesn't handle .loop/.endloop
Bug #ToolVersionFixed?
SDSsq05729 Assembly Optimizer V2.10 Will fix in a future release

Bug Description

The .loop/.endloop in a linear assembly function does not work
correctly. No code is emitted for the function.
 
Example code to reproduce:
test:   .proc   A1, A2, A3
          .reg    Aptr, A, Bptr, B, Cptr, C
          mv      A1, Aptr
          mv      A2, Bptr
          mv      A3, Cptr
          .eval   0,x
          .loop
          ldh     *Aptr++, A
          ldh     *Bptr++, B
          add     A, B, C
          sth     C, *Cptr++
          .eval   x+1, x
          .break  x=6
          .endloop
          .endproc


ABSOLUTE LISTER 2.00,2.10,2.11

Title: The Linker is unable to process file names that have been included.
Bug #ToolVersionFixed?
SDSsq04878 Absolute Lister V2.10 Fix scheduled to appear in version 2.11.

Bug Description

The linker is unable to process file names that have been
included, if the filename is in a quoted  string,
i.e. "main.obj".
 
Work around:
------------
Manually remove the double quote characters (") around the .obj
and .lib files within the linker command file and then run lnk500.
 
Download PC patch
Download Solaris patch
 
 


ARCHIVER 2.00,2.10,2.11

EMULATOR 2.00,2.01,2.03,2.04

Title: When change address in new memory window, original memory window address is changed instead.
Bug #ToolVersionFixed?
SDSsq04288 Emulator V2.00 Will fix in a future release

Bug Description

If you create a new memory window (using both the PC and Sparc
versions of the emulator)
 
   mem 0x1000,,window2
 
and then try to change the address displayed in window2 using
the address field of the window, it will not change the address
of window2, but it will change the address of the original
memory window.
 
If you close the original window and then change the address in
window2, the original window will reappear.
 
This problem also occurs on the simulator.
 


Title: Fails to connect to the target DSP just after the target board is powered up.
Bug #ToolVersionFixed?
SDSsq04294 Emulator V2.00 Fix scheduled to appear in version 2.01.

Bug Description

The emulator fails to connect with the target DSP right after the target board is powered up.
 
A dialog box containing the following error message appears.
 
        "Functional Error"
        "INT Error -1"
        "Cannot initialize target."
        "Check I/O."
        "Check cabling and target power."
 


Title: cannot load program when using Rev2 C6x board and WinNT
Bug #ToolVersionFixed?
SDSsq04309 Emulator V2.00 Will fix in a future release

Bug Description

v2.00 emulator debugger has problems loading files when
using a 133 MHz Windows NT machine. The error is usually
a "Memory Access Error - Check Memory Map". If the host
is a 200 MHz Windows NT machine, this problem is likely to
manifest itself more often.


Title: 'reset' from debugger window does not disable the cache in right order.
Bug #ToolVersionFixed?
SDSsq04348 Emulator V2.00 Fix appears in version 2.01.

Bug Description

 
Problem: (v2.0 emulator and rev 2.1 silicon)
'reset' from debugger window does not disable the cache in
right order.
 
because of this there will be problems while reloading the code
after reset, especially when the cache mode is enabled.
 
 


Title: Reset Failure when breakpoint exists at 0x0
Bug #ToolVersionFixed?
SDSsq04450 Emulator V2.00 Fix scheduled to appear in version 2.01.

Bug Description

The emulator reset command fails when a breakpoint point exists
at address 0x0.
 
The command window shows the following error message:
"Cannot reset the processor".
 


Title: Memory fill command fails with odd start address and word length of 1
Bug #ToolVersionFixed?
SDSsq04451 Emulator V2.00 Fix scheduled to appear in version 2.01.

Bug Description

The emulator debugger hangs when trying to perform a memory fill
command with odd start address and length of 1.
e.g. fill 0x80000001,1,0x0
 


Title: a user not in the "administrators" group cannot reset emulator in WinNT
Bug #ToolVersionFixed?
SDSsq04531 Emulator V2.00 Will fix in a future release

Bug Description

Under Windows NT, a user who is not in the "administrators" group
cannot reset the emulator. They will get the following error :
 
XDS510 RESET FOR WINDOWS NT
Version 3.00
Copyright (c) 1995-1997 by Texas Instruments Incorporated
 
XDS510 DRIVER FOR NT IS NOT ACCESSABLE.


Title: 'debugger watch window does not display variable values correctly.'
Bug #ToolVersionFixed?
SDSsq04904 Emulator V2.00 Will fix in a future release

Bug Description

The debugger watch window sometimes displays values of variables
incorrectly.
 


Title: Error message occurs when using 2.03 of the emulator and 2.11 code gen.
Bug #ToolVersionFixed?
SDSsq05462 Emulator V2.03 Will fix in a future release

Bug Description

Using ver 2.03 of the emulator debugger in conjunction with
ver 2.11 of the code generation tools, gives memory access errors
when loading code. On subsequent loads, it gives the same
error but at different addresses.
 
Download PC patch
Download the Readme file
 


EVM 1.10,1.20,1.30

Title: EVM Debugger hangs when sending messages over the PCI bus.
Bug #ToolVersionFixed?
SDSsq04744 EVM V1.10 Will fix in a future release

Bug Description

EVM Debugger will sometimes hang when sending messages over
the PCI bus.


Title: when attempting to read DRAM by invoking evm6x_hpi_read, the PC hangs.
Bug #ToolVersionFixed?
SDSsq04779 EVM V1.10 Will fix in a future release

Bug Description

Attempting to read DRAM by invoking evm6x_hpi_read sometimes
makes the PC hang.


Title: Profiling gives Fatal Error: Cannot start target processor.
Bug #ToolVersionFixed?
SDSsq04958 EVM V1.10 Will fix in a future release

Bug Description

When profiling on the C6x EVM Debugger or the C6x XDS-510
Emulator Debugger, the Debugger may give an error similar to:
 
Profiling...
Fatal Error: Cannot start target processor
Stop Point = 00002684 Func1, at line 152, "code.out"
Run Cycles = -243   Profile Cycles = -243    Hits = 99
 


Title: EVM Install Prob. Insert Disk Labelled EVM6x
Bug #ToolVersionFixed?
SDSsq05267 EVM V1.10 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
On using C6x EVM for the first time, if the following message
pops up: "The file EVM6x.INF in EVM6X could not be found,
  Insert EVM6X into drive below, click OK", then follow the following
procedure:
 
Insert the EVM into a PCI slot, power up
Just inserted board for the first time, booting the computer
and PlugNPlay has detected the board.
 
Problem sequence:
 
"New Hardware Found"
...
Found TI EVM Driver
"Copying Files dialog"
"Insert Disk labelled 'EVM6x",     <------- Problem beginning
hit OK
"Copying files.." pops up briefly then
"The file EVM6x.INF in EVM6X could not be found,
  Insert EVM6X into drive below, click OK", the text box which
  appears has D:\cab5 in it.  If this is not replaced by e:
  (the location of the CDROM) then you can't install the driver.
 


Title: Grey OK Button (hit next before inserting CDROM)
Bug #ToolVersionFixed?
SDSsq05268 EVM V1.10 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
 
Insert the EVM into a PCI slot, power up
Just inserted board for the first time, booting the computer
and PlugNPlay has detected the board.
 
Insert the card,
"New Hardware Found"  PCI CoProcessor...
Hit Next

 
The user is presented with a grey OK button and can not procede.
 
The user should have inserted the CDROM, then hit Next.


Title: 10 minute delay obtaining incomplete EVM driver info in Device Manager
Bug #ToolVersionFixed?
SDSsq05269 EVM V1.10 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
 
In Windows Device Manager (Start->Settings->Control
Panel->System->Device Manager->Other PCI->EVM 6x,
Properties, Driver tab) asking for the driver information
shows
Provider:   Not available
           Date:         3-31-1998
           Version:    Not available
 
Additionally, when you hit the resources tab, it takes
about 10 minutes to come up with the values
(on a Pentium 90).  Most users think the system is froze
and there is something wrong with the driver.


Title: Running EVM6xrst with CC Studio won't always reset the board
Bug #ToolVersionFixed?
SDSsq05303 EVM V1.10 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
 
on NT.
 
CCS is running, program will not Debug->go main.  try
start->texas instruments dsp->Reset EVM. No avail (try 3 times).  Go to dos box, hunt endlessly for the directory of evm install, run evm6xrst.exe  Error can't reset Jtag.
 
Exit CCS, run evm6xrst.exe, reset OK.
Run CCS
run evm6xrst, reset OK


Title: EVM6x drivers don't install (windows can't see the files)
Bug #ToolVersionFixed?
SDSsq05478 EVM V1.10 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
 
When installing the EVM6x software, there may be problems installing
the necessary drivers.
 
If the EVM6x is installed in a clean machine (only windows 95
osr2 installed), and V1.1 EVM6x CDROM is inserted, Windows might
be unable to find the drivers.
 
If you use 'Browse' to find the drivers, the OK button remains
greyed out.


LINKER 2.00,2.10,2.11

HEX CONVERTER 2.00,2.10,2.11

Title: hex6x -order M (MS) and -order L (LS) have no effect on code.
Bug #ToolVersionFixed?
SDSsq04340 Hex Converter V2.00 Will fix in a future release

Bug Description

The hex6x -order M (MS) and -order L (LS) switches have no
effect on the code generated.  Identical files are generated.


RTS 2.00,2.10,2.11

Title: printf format conversion bugs
Bug #ToolVersionFixed?
SDSsq04390 RTS V2.00 Fix appears in version 2.10.

Bug Description

The printf() routine is not zero-padding floating point
numbers, such as "%06.2f".  Additionally, trying to print the
NULL character to a stream does not work (nothing is printed).
 


Title: RTS functions readmsg()/writemsg() use 'volatile' incorrectly.
Bug #ToolVersionFixed?
SDSsq04393 RTS V2.00 Fix appears in version 2.10.

Bug Description

RTS functions readmsg() and writemsg() declare their
pointers to the CIOBUF as
"register unsigned char * volatile p".  This declares the
pointers themselves as being volatile, rather than the data
being pointed to.  The result is inefficient and potentially
incorrect code in the heart of the CIO mechanism.
(The CIOBUF itself *is* volatile, since the host will be
reading it and writing to it independently of the target.)
 
These should be declared as
"register volatile unsigned char *p" in writemsg(), or
"register const volatile unsigned char *p" in readmsg().
(The CIOBUF is not modified by readmsg, therefore the
pointer may be to const data, providing even greater
efficiency.)
 
On a side note:  The pointer arguments to writemsg(),
"unsigned char *parm" and "char *data", may be marked
const, since these should never overlap CIOBUF, and
writemsg() never writes through these pointers.  Marking
these as 'const' improves the performance of writemsg()
considerably.


Title: fwrite() calls memchr() on every call regardless of buffering mode
Bug #ToolVersionFixed?
SDSsq04394 RTS V2.00 Fix appears in version 2.10.

Bug Description

In the runtime sources, fwrite() calls memchr() to find a newline
in the buffer being written on every fwrite() call, regardless of
whether the stream is line-buffered or not.  This call wastes a
considerable number of cycles on large fwrite()'s.


Title: In the v. 2.00 rts.src, there is defect involving stack pointer initialization.
Bug #ToolVersionFixed?
SDSsq04707 RTS V2.00 Will fix in a future release

Bug Description

In the v. 2.00 rts.src, there is defect involving stack pointer
initialization:
 
If a user enters in a value for the stack size that is not divisible
by 8, there is not enough bytes between the first stack location
and the end of stack to hold a double. This could be pretty dangerous.
For example, if one used "-stack 0x4ffc" in the linker command
file, the stack will start at address 0x????4ff8 and the variables
in .bss begin at 0x????4ffc.  So if a doubleword is stored as the
first thing on the stack, it will overwrite the start
of the variables.
 
 


Title: Need to add #undef _INLINE to ceil.c, ceilf.c, floor.c, floorf.c
Bug #ToolVersionFixed?
SDSsq05258 RTS V2.10 Fix scheduled to appear in version 3.00.

Bug Description

BUG DESCRIPTION
===============
 
The files ceil.c, ceilf.c, floor.c, and floorf.c do not have the
line "#undef _INLINE" in them.
Because of this, when the user tries to use the library build
utility "mk6x" to rebuild the RTS library with the -x or -ox
options, the compile fails.  Anything inlined in "math.h" needs
to have the "#undef _INLINE" in the corresponding source files.
 
 


Title: Read() or write() > than 256 chars. overflows CIO's internal comm buffer
Bug #ToolVersionFixed?
SDSsq05919 RTS V2.11 Will fix in a future release

Bug Description

There's a bug in the RTS CIO routines in which a read() or
write()larger than 256 characters can overflow CIO's internal
communication buffer and crash the program unexpectedly.
 
Note that this bug also causes a problem for "load6x":
It reports receiving a "corrupt CIO message":
 
(Note: This bug is the same as SDSsq04392)


DOCUMENTATION 2.00,2.10

Title: MC command description is incorrect in Debugger User Manual.
Bug #ToolVersionFixed?
SDSsq04328 Documentation V2.00 Will fix in a future release

Bug Description

The documentation for the MC command is incorrect on p 12-31
in the C Source Debugger User Manual, SPRU188D.  It should say:
 
Syntax
 
mc port address, page, length, filename, {READ | WRITE}
 
The documentation leaves out the {READ | WRITE} parameter.
 
Also, the MC command is only supported in the simulator, but it
does not appear in either of the simulator *.hlp files.  It
only appears (correctly) in the emulator *.hlp file.


Title: CPU & Instruction set guide should be more explicit on certain rules
Bug #ToolVersionFixed?
SDSsq04486 Documentation V2.00 Will fix in a future release

Bug Description

The CPU and Instruction Set Reference Guide ( SPRU189C) does not
explicitly state that, for certain instructions, if internal
program RAM is used as either a source or destination, the
operation result is undefined.


Title: doc does not describe remote entity accessing host port interface
Bug #ToolVersionFixed?
SDSsq04487 Documentation V2.00 Will fix in a future release

Bug Description

A remote entity accessing a TMS320C6xxx through the host port
interface attempting to read internal program ram will have
undefined results. This is not documented in the host port
interface description( Pg 5-1 to 5-26) of the
TMS320C62x/C67x Peripherals Reference Guide( spru190b ).


Title: Assembly optimizer is requiring functional units for parallel instructions within a section of code.
Bug #ToolVersionFixed?
SDSsq04518 Documentation V2.00 Will fix in a future release

Bug Description

Assembly optimizer is requiring functional units for parallel
instructions within a section of code.
 
When using parallel instructions, this error is produced:
*** ERROR!   line 7: E0800: Illegal parallel instruction
                            (functional units conflict)
 
Workaround: Enter at least on of the functional units, the code
            will then compile completely.
 
The documentation needs to be corrected to inform users that parallel
bars are illegal in serial assembly.


Title: no info about DCC field in CSR in Peripherals Guide
Bug #ToolVersionFixed?
SDSsq04561 Documentation V2.00 Will fix in a future release

Bug Description

The TMS320C62xx CPU and Instrcution Set (SPRU189B) Guide,
page 2-9, documents the CSR's control and status bits.
The fields mentioned are EN, PWRD, PCC, and DCC. This Guide
refers to the TMS320C62xx Peripherals Reference Guide for more
info, but when you reference the Peripherals Guide, SPRU190B,
there is info about all fields except the DCC field.
 


Title: The relocation types in the Assembly Lang. Tools guide on pg. A-10 are incorrect.
Bug #ToolVersionFixed?
SDSsq04697 Documentation V2.00 Will fix in a future release

Bug Description

The table listed on page A-10 of the C6x Assembly Language
Tools Guide is wrong.  The last 3 entries are wrong.
They are listed as :
 
        R_C60LO16       0053h
        R_C60HI16       0054h
        R_C60SECT       0055h
 
 
They should be :
 
        R_C60LO16       0054h
        R_C60HI16       0055h
        R_C60SECT       0056h
 


Title: C Compiler Manual PDF file contains invalid page.
Bug #ToolVersionFixed?
SDSsq04816 Documentation V2.00 Will fix in a future release

Bug Description

Page 8-27 in the PDF version of the C6x C Compiler Manual
SPRU187C should not be included.
 
This page is not in the hardcopy of the manual.


Title: Documentation error on page 7.22 in the Optimizing 'C' compiler manual.
Bug #ToolVersionFixed?
SDSsq04894 Documentation V2.10 Will fix in a future release

Bug Description

In the "Optimizing C Compiler User's Guide", spru187c, there is an
incorrect statement regarding bit fields.
 
 
On page 7-22, the documentation states:
 
    "Note that the 'C6x C compiler operates on bit fields defined as
     unsigned ints.  Signed int bit field definitions are prohibited."
 
 
However, the documentation on Page 7-3 specifically states that a "bit
field defined as an integer is signed," which directly conflicts with
the prohibition on page 7-22.  Also, the example on page 8-12 shows a
bit-field structure with signed bit fields.
 
So, it appears that the statement on page 7-22 is both incorrect and
unnecessary.


Title: Optimizing C Compiler User's Guide (SPRU187C) contains conflicting descriptions of the stack pointer use.
Bug #ToolVersionFixed?
SDSsq04983 Documentation V2.10 Will fix in a future release

Bug Description

The TMS320C6x Optimizing C Compiler User's Guide (SPRU187C)
contains conflicting descriptions of the stack pointer.
 
In section 8.1.2 C System Stack, it states "B15 is the stack
pointer (SP), which points to the current top of the stack (the
lowest address used)."
 
The SP as used by the C compiler points to the next unused
location on the stack.
 
The description of SP initialization states "At system
initialization, SP is set to a designated address for the top of
the stack. This address is the first location past the end of the
.stack section."
 
The correct description of SP initialization is that the SP
is set to the first 8-byte aligned address BEFORE the end
(highest numerical address) of the .stack section.


SIMULATOR 2.00,2.01

Title: The SBSRAM cycles are not being counted the same as when counted on the hardware.
Bug #ToolVersionFixed?
SDSsq04277 Simulator V2.00 Will fix in a future release

Bug Description

The Simulator, Rls 2.00, is not simulating the SBSRAM cycles the same as the hardware.
It seems to double the cycles of a loop and ignore the alignment of fetch packets.


Title: Changing the sim6x.cfg to boot from DMA, worked in version 1.x Give's Error's.
Bug #ToolVersionFixed?
SDSsq04318 Simulator V2.00 Will fix in a future release

Bug Description

Customer using Sim6x version 2.x
 
When the Sim6x.cfg file is modified to change Bootsrc from
NONE to DMA, it generates the error:
 
    init error -1, Can't Initilize Target, Check Power and I/O
 
In command window:
 
    Configure error invalid bootsrc DMA
 
This worked in version 1.x simulator.
 


Title: Simulator allows data to be read from internal program memory
Bug #ToolVersionFixed?
SDSsq04319 Simulator V2.00 Will fix in a future release

Bug Description

Linking the .cinit section to internal program ram and running it
on V 2.00 of the simulator, the simulator will allow you to pull data
from the .cinit tables in program ram and load them into .bss.
The simulator should not allow data accesses into internal
program memory.
 
 


Title: SSHL is shifting by 6 bits of src1.
Bug #ToolVersionFixed?
SDSsq04349 Simulator V2.00 Will fix in a future release

Bug Description

Run on version 2.00 sim62x:
 
                MVK     0xd4e1da11,A0
                MVKH    0xd4e1da11,A0
 
                MVK     0xdc51b261,A1
                MVKH    0xdc51b261,A1
 
                SHL     A0,A1,A2
                SSHL    A0,A1,A3
 
Expected result for A3 is: 0xa9c3b422, SAT bit not set
sim62x result is: 0x00000000, SAT bit not set
 


Title: External events not recognised correctly by simulator
Bug #ToolVersionFixed?
SDSsq04371 Simulator V2.00 Will fix in a future release

Bug Description

Simulating external interrupts (pins int4-int7), in C62xx
simulator v2.00 does not work:
 
If the following interrupt timing file is connected to the int4
pin using the pinc command:
 
     300 (+500) rpt EOS;
 
and C I/O is used, the simulator correctly recognizes the first
interrupt generated, but the interrupts generated after the
first one are not recognized by the simulator.
 


Title: M unit conflict is generated in the simulator.
Bug #ToolVersionFixed?
SDSsq04380 Simulator V2.00 Will fix in a future release

Bug Description

M unit conflict is generated by the simulator when using
2 MPYHSLU instructions in a row with only 1 cycle between
them.
 


Title: Although execution is correct, the simulator displays an incorrect register value.
Bug #ToolVersionFixed?
SDSsq04386 Simulator V2.00 Will fix in a future release

Bug Description

In the 67x simulator disassembly window, the instruction
  ADDAD.D1  A4, A3, A0
is executed correctly, but decoded and displayed as
  ADDAD.D1  A4, B3, A0
The associated hex value is 0x000c9e40.
 
 The problem is easily reproduced by entering the opcode in a
memory window and disassembling that opcode. At any address in
the memory window, enter 0x000c9e40. Then disassemble this
address and you will see it decoded as
        ADDAD.D1        A4, B3, A0 .
 This is wrong and can be seen by putting some values in
registers A4, A3, and B3, and executing this instruction. You
will see the addition performed using A4 and A3, not A4 & B3 as
the disassembly says.
 If you decode the 0x000c9e40 opcode by hand you will also see
the error.
 
 


Title: The C6200B01 Compile4 Netmodel does not load correctly into ModelSim (MGC QuickHDL Replacement).
Bug #ToolVersionFixed?
SDSsq04528 Simulator V2.00 Will fix in a future release

Bug Description

The C6200B01 Compile4 Netmodel does not load correctly into
ModelSim (MGC QuickHDL Replacement).


Title: simulator locks up when trying to simulate SDRAM timing
Bug #ToolVersionFixed?
SDSsq04692 Simulator V2.00 Will fix in a future release

Bug Description

The simulator sometimes locks up when trying to simulate SDRAM
timing.


Title: Simulator gives error when .text and .cinit are in different locations
Bug #ToolVersionFixed?
SDSsq04717 Simulator V2.00 Will fix in a future release

Bug Description

When using EMIF, the simulator gives an error about access to
reserved memory, when .text and .cinit sections are placed in
different memory locations.


Title: stand-alone simulator load62x does not interpret ST||LD instruction correctly
Bug #ToolVersionFixed?
SDSsq04880 Simulator V2.00 Fix scheduled to appear in version 3.00.

Bug Description

The stand-alone simulator, load62x does not properly prioritize
reads ahead of writes when the two are in parallel. So when you
have a STW||LDW instruction, load62x results in an incorrect
result.
 
This has been fixed in the 3.00 Alpha simulator


Title: Problems assigning values to bit fields in a structure.
Bug #ToolVersionFixed?
SDSsq04897 Simulator V2.00 Will fix in a future release

Bug Description

Sometimes there are problems assigning values to bit fields in a
structure.  The structure, which contains several unsigned fields
one bit long, does not seem to respond to statements which assign
values to it.  For example, the statement
outgoing_indicator.febe = 0x1 does not assign 1 to the bit field.
It remains 0, the initial value.
 


Title: bit fields are not displayed correctly in the watch window.
Bug #ToolVersionFixed?
SDSsq04900 Simulator V2.00 Will fix in a future release

Bug Description

The simulator watch window sometimes displays values of variables
incorrectly.
 


Title: 'In the simulator, if you disconnect a pin and reconnect it again, it does not work.'
Bug #ToolVersionFixed?
SDSsq04644 Simulator V2.01 Will fix in a future release

Bug Description

 
 when in the simulator, if you disconnect a pin (using pind command) and reconnect
it again (using pinc command), it does not work (no interrupt is
generated).


Title: The SMPY instruction does not work in V2.01 simulator.
Bug #ToolVersionFixed?
SDSsq05368 Simulator V2.01 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
The SMPY instruction of C6x does not work correctly in
v2.01 Simulator. The lower 16-bits of the result are correct
while the top 16 bits are either 0000 or FFFF.
The previous version v2.00 Simulator works correctly for SMPY.


Title: mpysp and mpydp operations do not work after a call to rand()
Bug #ToolVersionFixed?
SDSsq05373 Simulator V2.01 Will fix in a future release

Bug Description

BUG DESCRIPTION
===============
 
The simulator does not correctly update the results of mpysp
and mpydp operations after a call to the rand() function.


Title: simulator does not always do DMA transfer correctly
Bug #ToolVersionFixed?
SDSsq05547 Simulator V2.01 Will fix in a future release

Bug Description

The simulator sometimes does not perform DMA transfer from
external memory to internal data memory correctly.


DEBUGGER 2.00,2.01,2.03,2.04

Title: When change address in new memory window, original memory window address is changed instead.
Bug #ToolVersionFixed?
SDSsq04287 Debugger V2.00 Will fix in a future release

Bug Description

If you create a new memory window (using both the PC and Sparc
versions of sim62x and sim62xfast)
 
   mem 0x1000,,window2
 
and then try to change the address displayed in window2 using
the address field of the window, it will not change the address
of window2, but it will change the address of the original
memory window.
 
If you close the original window and then change the address in
window2, the original window will reappear.
 
This problem also occurs on the emulator.
 


Title: Simulator or emulator errs when loading files linked with "-cr" linker option
Bug #ToolVersionFixed?
SDSsq04305 Debugger V2.00 Will fix in a future release

Bug Description

If you link C code with the "-cr" linker option, the simulator
or emulator will not initialize global variables to the
proper values.
 
The alignment of .cinit records changed from 4 bytes in tools
revision 1.10 to 8 bytes in tools revision 2.00.  This change
was accounted for in the compiler boot routine handling of
global variable initialization, but the corresponding change
was not made in the loader portion of the emulator and simulator.
 
The workaround is to link with "-c" instead of "-cr".
 


Title: Problem when 2 or more XDS510WS are connected in a series, the last one does not stay connected.
Bug #ToolVersionFixed?
SDSsq04355 Debugger V2.00 Will fix in a future release

Bug Description

When 2 or more XDS510WS's are linked in a series, the last
XDS510WS is not being seen by the workstation.
 


Title: The debugger prints out an extra character between calls to HOSTwrite
Bug #ToolVersionFixed?
SDSsq04639 Debugger V2.00 Will fix in a future release

Bug Description

I/O does not always work correctly on the debugger simulator.
The debugger prints out an extra space between characters that
get printed using the HOSTwrite() function.


Title: Profile mode gives windows error when directory length > 63 characters.
Bug #ToolVersionFixed?
SDSsq04746 Debugger V2.01 Will fix in a future release

Bug Description

The PC simulator and emulator (v2.01) as well as the EVM debugger
(v1.10) crashes when profiling a file when the directory name is
longer than 63 characters (including the drive letter).
 
For example, the directory:
 
V:\directory0\directory1\directory2\directory3\directory4\direc>
 
is fine but the directory:
 
V:\directory0\directory1\directory2\directory3\directory4\direct>
 
dies with a message similar to:
 
sim6x.exe - Application Error
 
The instruction at "0x00450022" referenced memory at "0x00000009".
The memory could not be "written".
 
sim6x.exe - Application Error
 
The instruction at "0x6c0031c3" referenced memory at "0x00000008".
The memory could not be "read".
 
The file runs correctly when not profiling.
 
This occurs on both the EVAL tools and the full release.


Title: Debugger does not display long variables in hex format
Bug #ToolVersionFixed?
SDSsq05755 Debugger V2.01 Will fix in a future release

Bug Description

The debugger does not display long variables in hex format correctly.
Also long values which are elements of an array are not displayed
correctly through a wa or disp command.
 
For example :
 
1) If you have a long declaration:
  long w = 15;
then it is not possible to display w in hex format.
 
The command 'wa w,,x' results in w = 15.
Using the Setup->Watch menu gives the same result.
 
It is also not possible to change the standard display format
by "setf long, x".
 
2) long values which are elements of an array are not displayed
correctly through a wa-/disp-instruction:
 
If you have a long-array declaration:
  long LL[5];
and the array is initialized, then using 'wa LL' or 'wa (long *)LL',
does not display the correct values in the simulator.
 


Title: Loading code built for the 6701 produces "invalid coff file" error using
Bug #ToolVersionFixed?
SDSsq05737 Debugger V2.03 Will fix in a future release

Bug Description

Loading code that is built for the 6701 into the Code Composer
Emulator , results in an "invalid coff file" error.
 
This problem only exists under CC EVM/emulator driver version 2.03.
 
It does not exist under TI debugger release 2.03.
 
Download PC patch
 
 


 
Device: TMS320C6x  
Category: TI Tools
Title: TMS320C6x Tools Bug List 
Source: TI SDS Autogen Errata List 
GenId: c6xbug
 
 SemiconductorsDSP SolutionsSearchFeedBack TI Home
© Copyright 1998 Texas Instruments Incorporated. All rights reserved.
Trademarks,Important Notice!