By: Anon (no.delete@this.spam.com), September 21, 2022 11:01 pm
Room: Moderated Discussions
dmcq (dmcq.delete@this.fano.co.uk) on September 21, 2022 4:53 am wrote:
> Just reading the ARM aapcs document about their ABI, they seem to have come to the same conclusion
> - preserve none except if the interface uses SVE when all except the first eight need to
> be preserved - basically any vector function. I can see a few problems with nested calls
> with that - for instance any call to a non vector function within one will require all those
> SVE registers be saved. Tradeoffs always leave one with a FoMO feeling :-)
Would be feasible an ABI where the function tells which registers it expect the caller to save? In order to keep binary compatibility new versions of older functions may have to callee save a few registers, but in general this would be more efficient than current situation.
> Just reading the ARM aapcs document about their ABI, they seem to have come to the same conclusion
> - preserve none except if the interface uses SVE when all except the first eight need to
> be preserved - basically any vector function. I can see a few problems with nested calls
> with that - for instance any call to a non vector function within one will require all those
> SVE registers be saved. Tradeoffs always leave one with a FoMO feeling :-)
Would be feasible an ABI where the function tells which registers it expect the caller to save? In order to keep binary compatibility new versions of older functions may have to callee save a few registers, but in general this would be more efficient than current situation.