4 ms·
> The C/C++ ABI is quite uniform across architectures. How can it be? What about an architecture without conventional registers? And for example I work on an i
by chrisseaton 5y ago
> The C/C++ ABI is quite uniform across architectures.
How can it be? What about an architecture without conventional registers? And for example I work on an implementation of C/C++ that logically uses the heap for its ABI.
- inkyoto 5y agoQuite uniform != completely uniform. Especially when it comes to C (less so C++), it is a remarkably adaptable language that has been able to attune to a variety of vastly incompatible hardware architectures, including stack based ones, heap based ones and some esoteric ones as well. Yet, in the case of conventional, register based ISA's, the ABI has been remarkably similar: nonwithstanding actual ISA specific register names, registers 0…N (apart from RISC ISA's where storing into/loading from the register 0 is a no-op / zero constant) are used as input parameters and register 0 (where available) is used as the function return value (provided it can fit in); otherwise the return result is returned via stack.
- chrisseaton 5y ago> Quite uniform != completely uniform Don't know if you're a non-native speaker, but no 'quite' usually does means 'completely'! https://dictionary.cambridge.org/dictionary/english/quite https://dictionary.cambridge.org/dictionary/english/quite
- guenthert 5y agoOnly when used with non-gradable adjectives/adverbs (from the same surce: https://dictionary.cambridge.org/grammar/british-grammar/quite https://dictionary.cambridge.org/grammar/british-grammar/qui... ) (and yes, uniform, is quite non-gradable) (non-native speaker here, quite frustrated about the quite different meanings of 'quite')
- chrisseaton 5y ago'Quite dead' for example means completely dead.
- Dylan16807 5y agoOnly because dead is so binary. Any moderately intense modifier on "dead" signifies complete death, even though it won't mean 'completely' with most terms.