On 10/02/2021 14:18, Jan Beulich wrote: > On 10.02.2021 15:02, Andrew Cooper wrote: >> On 10/02/2021 13:54, Jan Beulich wrote: >>> Just like considered in the post-description >>> remark, we could drop the conditional part from sysexit's >>> setting of _regs.r(ip), and _then_ we would indeed need a >>> respective change there, for the truncation to happen at >>> complete_insn:. >> I think it would look odd changing just rip and not rsp truncation. > Yes, this was another consideration of mine as well. But it > is a fact that we treat rip and rsp differently in this > regard. Perhaps generated code overall could benefit from > treating rsp more like rip, but this would need careful > looking at all the involved pieces - especially in cases > where the updated stack pointer gets further used we may > not be able to defer the truncation to complete_insn:.
There are other differences. rip gets updated on every instruction, while rsp does not. We also have instructions with (possibly multiple) rsp-relative memory references which need truncating individually to get proper behaviour. ~Andrew