Strukturen in Registern zurückgeben - ARM ABI in GCC

In der ARM ABI-Dokumentation stoße ich auf Funktionen, die wie folgt definiert sind:

__value_in_regs struct bar foo(int a, int b) {
    ...
}

aber GCC 4.3.3) erlaubt es nicht und alles, was ich finden konnte, sind Verweise auf ein RealView Compiler. Gibt es eine Möglichkeit, dies von GCC aus zu tun?

Ich habe versucht, -freg-struct-return, aber es macht keinen Unterschied. Da es sich um ein ABI handelt, kann ich die ursprünglichen Programme nicht ändern. Wenn ich eine reguläre Struktur zurückgebe, wird der Stack beschädigt.

Ich würde lieber keine Assembly verwenden, wenn dies vermeidbar ist, da dies ansonsten nicht erforderlich ist.

Vielen Dank

Antworten auf die Frage(8)

Ihre Antwort auf die Frage