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 > Thanks, > Jean > >> >> >> but r0 happens to equal x0 due to the >> * way build_epilogue() builds the JIT image. >> */ >> if (save_ret) >> emit(A64_STR64I(A64_R(0), A64_SP, retval_off), ctx); >> >>> Apart from that, for the series >>> >>> Reviewed-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> >>> >>> . > .