[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 31/34] target/ppc: Add set_vscr_sat
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH 31/34] target/ppc: Add set_vscr_sat |
Date: |
Wed, 19 Dec 2018 17:40:34 +1100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Mon, Dec 17, 2018 at 10:39:08PM -0800, Richard Henderson wrote:
> This is required before changing the representation of the register.
>
> Signed-off-by: Richard Henderson <address@hidden>
Acked-by: David Gibson <address@hidden>
> ---
> target/ppc/int_helper.c | 29 +++++++++++++++++------------
> 1 file changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c
> index 75201bbba6..38aa3e85a6 100644
> --- a/target/ppc/int_helper.c
> +++ b/target/ppc/int_helper.c
> @@ -480,6 +480,11 @@ uint32_t helper_mfvscr(CPUPPCState *env)
> return env->vscr;
> }
>
> +static inline void set_vscr_sat(CPUPPCState *env)
> +{
> + env->vscr |= 1 << VSCR_SAT;
> +}
> +
> void helper_vaddcuw(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
> {
> int i;
> @@ -593,7 +598,7 @@ VARITHFPFMA(nmsubfp, float_muladd_negate_result |
> float_muladd_negate_c);
> } \
> } \
> if (sat) { \
> - env->vscr |= (1 << VSCR_SAT); \
> + set_vscr_sat(env); \
> } \
> }
> #define VARITHSAT_SIGNED(suffix, element, optype, cvt) \
> @@ -865,7 +870,7 @@ void helper_vcmpbfp_dot(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a,
> } \
> } \
> if (sat) { \
> - env->vscr |= (1 << VSCR_SAT); \
> + set_vscr_sat(env); \
> } \
> }
> VCT(uxs, cvtsduw, u32)
> @@ -916,7 +921,7 @@ void helper_vmhaddshs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a,
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -933,7 +938,7 @@ void helper_vmhraddshs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a,
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -1061,7 +1066,7 @@ void helper_vmsumshs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a,
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -1114,7 +1119,7 @@ void helper_vmsumuhs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a,
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -1633,7 +1638,7 @@ void helper_vpkpx(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t
> *b)
> } \
> *r = result; \
> if (dosat && sat) { \
> - env->vscr |= (1 << VSCR_SAT); \
> + set_vscr_sat(env); \
> } \
> }
> #define I(x, y) (x)
> @@ -2106,7 +2111,7 @@ void helper_vsumsws(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a, ppc_avr_t *b)
> *r = result;
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -2133,7 +2138,7 @@ void helper_vsum2sws(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a, ppc_avr_t *b)
>
> *r = result;
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -2152,7 +2157,7 @@ void helper_vsum4sbs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a, ppc_avr_t *b)
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -2169,7 +2174,7 @@ void helper_vsum4shs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a, ppc_avr_t *b)
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
> @@ -2188,7 +2193,7 @@ void helper_vsum4ubs(CPUPPCState *env, ppc_avr_t *r,
> ppc_avr_t *a, ppc_avr_t *b)
> }
>
> if (sat) {
> - env->vscr |= (1 << VSCR_SAT);
> + set_vscr_sat(env);
> }
> }
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH 06/34] tcg/i386: Implement vector saturating arithmetic, (continued)
- [Qemu-devel] [PATCH 06/34] tcg/i386: Implement vector saturating arithmetic, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 26/34] target/ppc: Pass integer to helper_mtvscr, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 12/34] target/ppc: introduce get_avr64() and set_avr64() helpers for VMX register access, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 05/34] tcg: Add opcodes for vector saturated arithmetic, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 10/34] target/arm: Use vector minmax expanders for aarch32, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 21/34] target/ppc: nand, nor, eqv are now generic vector operations, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 31/34] target/ppc: Add set_vscr_sat, Richard Henderson, 2018/12/18
- Re: [Qemu-devel] [PATCH 31/34] target/ppc: Add set_vscr_sat,
David Gibson <=
- [Qemu-devel] [PATCH 22/34] target/ppc: convert VSX logical operations to vector operations, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 30/34] target/ppc: Use mtvscr/mfvscr for vmstate, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 18/34] target/ppc: convert vaddu[b, h, w, d] and vsubu[b, h, w, d] over to use vector operations, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 32/34] target/ppc: Split out VSCR_SAT to a vector field, Richard Henderson, 2018/12/18
- [Qemu-devel] [PATCH 34/34] target/ppc: convert vmin* and vmax* to vector operations, Richard Henderson, 2018/12/18