[PATCH 1/1] riscv: Optimize user copy with efficient unaligned access support

Andrew Jones andrew.jones at oss.qualcomm.com
Mon Feb 9 09:53:37 PST 2026


On Tue, Dec 02, 2025 at 03:41:21PM +0800, maohan4761 at gmail.com wrote:
...
> +.L_len_less_16x_szreg:
> +        # Pre-check: ensure at least one register copy is possible

ensure at least four register copies are possible

> +        addi     t1, a0, 4*SZREG
> +        bgtu    t1, t0, .L_len_less_4x_szreg
> +
> +.L_loop_4x_reg:
> +        fixup REG_L   a4,        0(a1), 10f
> +        fixup REG_L   a5,    SZREG(a1), 10f
> +        fixup REG_L   a6,  2*SZREG(a1), 10f
> +        fixup REG_L   a7,  3*SZREG(a1), 10f
> +        fixup REG_S   a4,        0(a0), 10f
> +        fixup REG_S   a5,    SZREG(a0), 10f
> +        fixup REG_S   a6,  2*SZREG(a0), 10f
> +        fixup REG_S   a7,  3*SZREG(a0), 10f
> +        addi    a1, a1, 4*SZREG
> +        addi    a0, a0, 4*SZREG
> +
> +        # Check if another register copy is safe

Check if another four register copies are safe

> +        addi    t1, a0, 4*SZREG
> +        bleu    t1, t0, .L_loop_4x_reg
> +

Thanks,
drew



More information about the linux-riscv mailing list