diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2019-06-16 13:37:50 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2019-07-02 09:43:58 +1000 |
commit | 5ba5335d93cf235e5de065714ced2c1b0f4c9c6e (patch) | |
tree | 70054052a2bf6a954e0e578bbac6f83add23d8ec /target/ppc/int_helper.c | |
parent | 2aba168e5044641111877fb1d65a0ddcf70ba298 (diff) | |
download | qemu-5ba5335d93cf235e5de065714ced2c1b0f4c9c6e.zip qemu-5ba5335d93cf235e5de065714ced2c1b0f4c9c6e.tar.gz qemu-5ba5335d93cf235e5de065714ced2c1b0f4c9c6e.tar.bz2 |
target/ppc: decode target register in VSX_EXTRACT_INSERT at translation time
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20190616123751.781-15-mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target/ppc/int_helper.c')
-rw-r--r-- | target/ppc/int_helper.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 3b8939e..5c07ef3 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -1899,11 +1899,9 @@ VEXTRACT(uw, u32) VEXTRACT(d, u64) #undef VEXTRACT -void helper_xxextractuw(CPUPPCState *env, target_ulong xtn, - target_ulong xbn, uint32_t index) +void helper_xxextractuw(CPUPPCState *env, ppc_vsr_t *xt, + ppc_vsr_t *xb, uint32_t index) { - ppc_vsr_t *xt = &env->vsr[xtn]; - ppc_vsr_t *xb = &env->vsr[xbn]; ppc_vsr_t t = { }; size_t es = sizeof(uint32_t); uint32_t ext_index; @@ -1917,11 +1915,9 @@ void helper_xxextractuw(CPUPPCState *env, target_ulong xtn, *xt = t; } -void helper_xxinsertw(CPUPPCState *env, target_ulong xtn, - target_ulong xbn, uint32_t index) +void helper_xxinsertw(CPUPPCState *env, ppc_vsr_t *xt, + ppc_vsr_t *xb, uint32_t index) { - ppc_vsr_t *xt = &env->vsr[xtn]; - ppc_vsr_t *xb = &env->vsr[xbn]; ppc_vsr_t t = *xt; size_t es = sizeof(uint32_t); int ins_index, i = 0; |