top | item 47015853

(no title)

cvoss | 15 days ago

With an increase in available registers, every value that a compiler might newly choose to keep in a register was a value that would previously have lived in the local stack frame anyway.

It's up to the compiler to decide how many registers it needs to preserve at a call. It's also up to the compiler to decide which registers shall be the call-clobbered ones. "None" is a valid choice here, if you wish.

discuss

order

guenthert|14 days ago

> It's up to the compiler to decide how many registers it needs to preserve at a call.

But the compiler is bound by the ABI, isn't it? (at least for externally visible entrance points / calls to sub routines external to the current compilation unit)

cvoss|14 days ago

Someone decides how to define the ABI too, and that is a free choice. CPU register count doesn't constrain this particular system design question.