Re: [PATCH bpf-next v7 4/4] bpf, arm64: bpf trampoline for arm64

From: Xu Kuohai
Date: Mon Jul 11 2022 - 10:41:11 EST


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>
>>>
>>> .
> .