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

Calling function expects struct floating point return value in wrong register for big-endian ARM targets with float support

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • Code Generation Tools
    • CODEGEN-8403
    • Hide
      ARM_18.12.0.LTS
      ARM_20.2.0.LTS
      Show
      ARM_18.12.0.LTS ARM_20.2.0.LTS
    • Hide
      ARM_18.12.8.LTS*
      ARM_20.2.4.LTS*
      Show
      ARM_18.12.8.LTS* ARM_20.2.4.LTS*
    • default
    • N/A

      On ARM with floating point hardware, EABI calling convention specifies that homogeneous structs with 1-4 floats or doubles be returned in coprocessor registers. When compiling for big-endian targets, the compiler expects a call's return value of a struct or class containing a single float or double in the wrong register and overwrites the value in S0 with the contents of register A1.

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

              Created:
              Updated:
              Resolved: