4 ms·
"First, the compiler defined a secret global variable for each inbound function parameter, plus another secret global variable for each function to hold the ret
by guenthert 3y ago
"First, the compiler defined a secret global variable for each inbound function parameter, plus another secret global variable for each function to hold the return address"
I believe 'hidden' is the word he's looking for.
And one doesn't have to go all that far into history to find architectures w/o hardware support for a return stack, see e.g. Parallax Propeller.
And the problem with static variables (hidden or not) is not only that they prevent recursion, but also reentrancy.
I think that article could have benefited from a peer review from one of his colleagues at Microsoft.
- mauricioc 3y agoRaymond Chen has been writing his blog for more than 20 years now, almost 7000 posts. It is a treasure trove of information and first-hand account. I can see an argument for peer-reviewing every post, but I think it would have limited (a lot) the amount of "from the trenches" knowledge we get from him. Your reference to the Parallax Propeller is domain-specific and a bit anachronic; you're talking about embedded computing, while he is talking about general-purpose computing a few decades prior. The point of the post is that general-purpose computing was different in the past (in a sense, that's the theme for the whole blog! that and compatibility hacks), so going this far back is necessary.