6 ms·
Yeah that’s a very good point. There may be multiple reasons but a performance reason of which I’m aware is downward stacks are more efficient for allocating a
by dhhwrongagain 6y ago
Yeah that’s a very good point.
There may be multiple reasons but a performance reason of which I’m aware is downward stacks are more efficient for allocating aligned memory:
sp = (sp - size) & align;
That’s only two instructions, with a stack that grows upward:
sp += size;
if (sp & (align - 1))
sp += align - (sp & (align - 1));
Which is a few more instructions. Of course you can alleviate this by requiring an alignment invariant in the ABI, which is usually done anyway.