[QUOTE="Jens Schweikhardt"]\nin <>:\n#> If a, b, and c are of some built-in type, then `a = b + c;` cannot\n#> involve any function calls in either C or C++.\n#\n# Sure it can. It could involve a call to a function called __addquad().[/QUOTE]\n\nSeebs of course makes a good point. My point was that even in C++,\nyou can't overload an operator for a built-in type that already\nhas that operator. You can't write your own\n\ndouble operator+(double, double);\n\nthat will be invoked when you add two double values.\n\nAnd even if addition for some type is implemented as a function\ncall, its semantics are still defined by the standard's rules for\noperators, not by the rules for function calls.\n[QUOTE]\nI remember Dan Pop once told me about a C implementation for a Z80 (an\n8-bit CPU). On this CPU, 16bit addition uses two of three register pairs\n("ADC HL,BC") and I'm confident it would call a function saving and\nrestoring the registers clobbered.[/QUOTE]\n\nI would be unsurprised if the saving and restoring of the registers\nwere done with inline code rather than function calls. But I'm\nnot familiar with the Z80, and perhaps a function call saves enough\ncode size to make it worthwhile.