
Jan. 15, 2016
10:06 a.m.
Hi Richard, On Fri, Jan 15, 2016 at 2:59 PM, Richard Plangger <planrichi@gmail.com> wrote:
I have fixed this issue at the call site. The caller sign/zero extends narrower integer types. The reason I did not change it to that in the first place is: I thought that it is not easy to determine this information at the callsite (because it is not done in any other backend). Apparently it is available.
It is done in the x86 backend. See load_result() in x86/callbuilder.py, which abuses load_from_mem() to emit an instruction MOV(S|Z)X(bits) for sign- or zero extension. It is also done in the arm backend, where load_result() calls self._ensure_result_bit_extension(). A bientôt, Armin.