Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-9842

C7000 compiler should not allow multiple increments of same SE/SA on a cycle

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • Code Generation Tools
    • CODEGEN-7523
    • C7000_1.4.0.LTS
    • C7000_1.4.1.LTS*
    • default

      Multiple increments of Streaming Engine or Streaming Address Generator resources are only counted once per cycle. The following example does not produce the behavior meant by the source code.

      > cat foo.c
      #include <c7x.h>

      void foo(int x, uchar64 *p)
      {
      int i;
      for (i = 0; i < x; i++)

      { *(__SA0ADV(uchar64, p)) = __max(__SE0ADV(uchar64), __SE0ADV(uchar64)); }

      }
      > cl7x foo.c -o3 -k --symdebug:none
      > grep foo.asm -e "SE0++"
      VMAXUB .L2 SE0+,SE0+,VB0 ; [B_L2] |8| <0,1>

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: