On Mon, Jul 11, 2022 at 10:40:42PM +0800, Xu Kuohai wrote: > On 7/11/2022 10:37 PM, Jean-Philippe Brucker wrote: > > On Mon, Jul 11, 2022 at 10:16:00PM +0800, Xu Kuohai wrote: > >>>> + if (save_ret) > >>>> + emit(A64_STR64I(p->jited ? r0 : A64_R(0), A64_SP, retval_off), > >>>> + ctx); > >>> > >>> This should be only A64_R(0), not r0. r0 happens to equal A64_R(0) when > >>> jitted due to the way build_epilogue() builds the function at the moment, > >>> but we shouldn't rely on that. > >>> > >> > >> looks like I misunderstood something, will change it to: > >> > >> /* store return value, which is held in x0 for interpreter and in > >> * bpf register r0 for JIT, > > > > It's simpler than that: in both cases the return value is in x0 because > > the function follows the procedure call standard. You could drop the > > comment to avoid confusion and only do the change to A64_R(0) > > > > OK, will send v9 since v8 was just sent Right sorry about this, I could have been clearer Thanks, Jean