Yes, the calling convention differs between C674x and C66x. For C66x EABI, small structs (64 bits or less) passed (or returned) by value are actually passed (or returned) by value, not as a pointer. Complex float types are represented internally as a structure. In the "complex float" case, the structure fits in 64 bits and is thus returned directly in A5:A4. In the "complex double" case, the structure does not fit in 128 bits and must by copied to a structure pointed to by A3.
↧