[PATCH v2 1/2] riscv: simplify longjmp
Sean Anderson
seanga2 at gmail.com
Mon Mar 22 13:53:35 CET 2021
On 3/22/21 7:02 AM, Heinrich Schuchardt wrote:
> The value returned by setjmp must be nonzero. If zero is passed as
> parameter it must be replaced by 1.
>
> This patch reduces the code size a bit.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Sean Anderson <seanga2 at gmail.com>
You are missing something here.
> ---
> v2:
> fix typo in title
> ---
> arch/riscv/lib/setjmp.S | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arch/riscv/lib/setjmp.S b/arch/riscv/lib/setjmp.S
> index 72bc9241f6..99d6195827 100644
> --- a/arch/riscv/lib/setjmp.S
> +++ b/arch/riscv/lib/setjmp.S
> @@ -54,12 +54,8 @@ ENTRY(longjmp)
> LOAD_IDX(sp, 13)
>
> /* Move the return value in place, but return 1 if passed 0. */
> - beq a1, zero, longjmp_1
> - mv a0, a1
> - ret
> -
> - longjmp_1:
> - li a0, 1
> + seqz a0, a1
> + add a0, a0, a1
> ret
> ENDPROC(longjmp)
> .popsection
> --
> 2.30.2
>
More information about the U-Boot
mailing list