Secure return erroneously clears return value register

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: High
    • Code Generation Tools
    • CODEGEN-13728
    • C29_1.0.0.LTS
    • Hide
      C29_1.0.1.LTS*
      C29_2.0.0.STS*
      Show
      C29_1.0.1.LTS* C29_2.0.0.STS*
    • F29x
    • Hide
      Use the -fno-optimize-sibling-calls to eliminate the issue from user code.

      For affected library functions, there is no workaround other than to avoid calls to affected
      functions, identified through the process explained in the description.
      Show
      Use the -fno-optimize-sibling-calls to eliminate the issue from user code. For affected library functions, there is no workaround other than to avoid calls to affected functions, identified through the process explained in the description.

      Protected calls to affected functions do not issue the correct PRESERVE instruction upon return, leading to the return value register being cleared instead of passed back to the caller with the correctly calculated value.

      Most notably impacted is 64-bit floating point subtraction operations in code compiled with the `-mfpu=none` option. These become calls to library functions, which are impacted if those calls must be protected.

      User code compiled with -O0 and -O1 are unaffected.

      This issue can be identified in disassembly by inspecting each RET.PROT instruction. If it is not in parallel with a PRESERVE instruction or in parallel with a PRESERVE instruction with a zero-valued mask, and the function returns a value, that function is affected.

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

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-5371 - Secure return erroneously clears re...
                SYNCHRONIZED
                • Last Sync Date: