target/ppc: Move VSX vector with length storage access insns to decodetree.

Moving the following instructions to decodetree specification :

        {l, st}xvl(l)           : X-form

The changes were verified by validating that the tcg-ops generated by those
instructions remain the same, which were captured using the '-d in_asm,op' flag.

Also added a new function do_ea_calc_ra to calculate the effective address :
EA <- (RA == 0) ? 0 : GPR[RA], which is now used by the above-said insns,
and shall be used later by (p){lx, stx}vp insns.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Chinmay Rath <rathc@linux.ibm.com>
[np: Fix 32-bit build]
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
Chinmay Rath 2024-06-18 14:28:29 +05:30 committed by Nicholas Piggin
parent cff278c9fa
commit 29df8d950e
6 changed files with 94 additions and 43 deletions

View file

@ -475,8 +475,8 @@ void helper_##name(CPUPPCState *env, target_ulong addr, \
*xt = t; \
}
VSX_LXVL(lxvl, 0)
VSX_LXVL(lxvll, 1)
VSX_LXVL(LXVL, 0)
VSX_LXVL(LXVLL, 1)
#undef VSX_LXVL
#define VSX_STXVL(name, lj) \
@ -504,8 +504,8 @@ void helper_##name(CPUPPCState *env, target_ulong addr, \
} \
}
VSX_STXVL(stxvl, 0)
VSX_STXVL(stxvll, 1)
VSX_STXVL(STXVL, 0)
VSX_STXVL(STXVLL, 1)
#undef VSX_STXVL
#undef GET_NB
#endif /* TARGET_PPC64 */