mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
target/ppc: implement xscv[su]qqp
Implement the following PowerISA v3.1 instructions: xscvsqqp: VSX Scalar Convert with round Signed Quadword to Quad-Precision xscvuqqp: VSX Scalar Convert with round Unsigned Quadword to Quad-Precision format Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220330175932.6995-8-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
bea592300b
commit
67332e0718
4 changed files with 39 additions and 0 deletions
|
@ -3058,6 +3058,18 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \
|
|||
VSX_CVT_INT_TO_FP2(xvcvsxdsp, int64, float32)
|
||||
VSX_CVT_INT_TO_FP2(xvcvuxdsp, uint64, float32)
|
||||
|
||||
#define VSX_CVT_INT128_TO_FP(op, tp) \
|
||||
void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb)\
|
||||
{ \
|
||||
helper_reset_fpstatus(env); \
|
||||
xt->f128 = tp##_to_float128(xb->s128, &env->fp_status); \
|
||||
helper_compute_fprf_float128(env, xt->f128); \
|
||||
do_float_check_status(env, GETPC()); \
|
||||
}
|
||||
|
||||
VSX_CVT_INT128_TO_FP(XSCVUQQP, uint128);
|
||||
VSX_CVT_INT128_TO_FP(XSCVSQQP, int128);
|
||||
|
||||
/*
|
||||
* VSX_CVT_INT_TO_FP_VECTOR - VSX integer to floating point conversion
|
||||
* op - instruction mnemonic
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue