On Mon, 8 Feb 2021 at 03:48, Richard Henderson
<richard.hender...@linaro.org> wrote:
>
> Add registers and function stubs.  The functionality
> is disabled via use_neon_instructions defined to 0.
>
> We must still include results for the mandatory opcodes in
> tcg_target_op_def, as all opcodes are checked during tcg init.
>
> Signed-off-by: Richard Henderson <richard.hender...@linaro.org>

> +    if (use_neon_instructions) {
> +        tcg_target_available_regs[TCG_TYPE_V64]  = ALL_VECTOR_REGS;
> +        tcg_target_available_regs[TCG_TYPE_V128] = ALL_VECTOR_REGS;
> +
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q0);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q1);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q2);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q3);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q4);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q5);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q6);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q7);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q8);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q9);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q10);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q11);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q12);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q13);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q14);
> +        tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_Q15);
> +    }

The AAPCS says that q4-q7 are preserved across calls.

Otherwise
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>

thanks
-- PMM

Reply via email to