From: Basil H. <ba...@st...> - 2024-01-14 17:42:06
|
On 14/01/2024 14:40, Philipp Klaus Krause wrote: > The adjustStack helper function in code generation uses add. It works > for both negative and nonnegative stack pointer adjutsments, no point > writing a version that uses sub. Fair enough. Was just curious. :) > Well, padding of unspecified value. Practially, it will often flag > bits, since push af tends an efficient efficient way to push a byte as > 16-bit value with unspecified upper byte. But this is not guaranteed, > and the callee shouldn't rely on it. Oh, of course. I can't even imagine why anyone would want to look at flags previously saved on the stack. So yes, effectively padding, albeit of typically non-arbitrary value. Hmm... what you said made me wonder if, given the flag register is writeable, whether you could actually use "push af" to store an arbitrary 16-bit value on the stack. But no, the top 4 bits of flag aren't writeable, and the docs say they always read as '1', so I presume any value in that register will be 0b1111xxxx when saved to the stack. An interesting thought experiment nonetheless. Regards, Basil Hussain |