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

C2000 long-long compares using MINL/MINCUL used invalid indirect-postinc addressing mode

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • Code Generation Tools
    • CODEGEN-10116
    • Hide
      C2000_18.1.0.LTS
      C2000_22.6.0.LTS
      C2000_21.6.0.LTS
      C2000_18.12.0.LTS
      C2000_20.2.0.LTS
      Show
      C2000_18.1.0.LTS C2000_22.6.0.LTS C2000_21.6.0.LTS C2000_18.12.0.LTS C2000_20.2.0.LTS
    • Hide
      C2000_21.6.1.LTS*
      C2000_20.2.7.LTS
      C2000_22.6.1.LTS*
      Show
      C2000_21.6.1.LTS* C2000_20.2.7.LTS C2000_22.6.1.LTS*
    • default
    • Hide
      For --opt_level=2 or higher, if the invalid code is generated within a loop then prevent unrolling with below and confirm that eliminates the indirect-post-increment addressing:
      #pragma UNROLL(1)
        for loop
      Otherwise use a lower --opt_level.
      Show
      For --opt_level=2 or higher, if the invalid code is generated within a loop then prevent unrolling with below and confirm that eliminates the indirect-post-increment addressing: #pragma UNROLL(1)   for loop Otherwise use a lower --opt_level.

      For C28, long-long integer compares that the optimizer converts to intrinsics __llmin (and __llmax) are incorrectly generated using indirect-postincrement addressing which is not valid with little endian.

      Example of the incorrect code being generated:
              MINL      ACC,*XAR4++           
              MINCUL    P, *XAR4++            
      And correct addressing:
            MINL      ACC,*+XAR4[2]
            MINCUL    P, *+XAR4[0]      

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

              Created:
              Updated:
              Resolved: