C2000 compiler does not save unused save-on-call RXL registers in interrupt routines with function calls

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • Code Generation Tools
    • CODEGEN-8097
    • Hide
      C2000_20.8.0.STS
      C2000_18.12.0.LTS
      C2000_20.2.0.LTS
      Show
      C2000_20.8.0.STS C2000_18.12.0.LTS C2000_20.2.0.LTS
    • Hide
      C2000_20.8.0.STS
      C2000_20.2.3.LTS*
      C2000_18.12.7.LTS*
      Show
      C2000_20.8.0.STS C2000_20.2.3.LTS* C2000_18.12.7.LTS*
    • default
    • When using --float_support=fpu64, avoid function calls from ISR's or ensure the called routines are inlined in to the ISR

      Inside an interrupt routine that makes a function call, all save-on-call registers (R0-R3) should be saved to the stack regardless of whether they are used in the interrupt. For C2000 with 64-bit floating point registers (--float-support=fpu64 --abi=eabi), only the 32-bit RxH halves of 64-bit floating point registers that are unused in the interrupt are being saved. If the 64-bit FP register is used in the interrupt, the entire register is saved to the stack.

            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-2533 - C2000 compiler does not save unused...
                SYNCHRONIZED
                • Last Sync Date: