mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
target/ppc: introduce GEN_VSX_HELPER_X1 macro to fpu_helper.c
Rather than perform the VSR register decoding within the helper itself, introduce a new GEN_VSX_HELPER_X1 macro which performs the decode based upon xB 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-10-mark.cave-ayland@ilande.co.uk> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
033e1fcd97
commit
8d830485fc
3 changed files with 26 additions and 12 deletions
|
@ -2236,9 +2236,8 @@ VSX_TDIV(xvtdivsp, 4, float32, VsrW(i), -126, 127, 23)
|
|||
* nbits - number of fraction bits
|
||||
*/
|
||||
#define VSX_TSQRT(op, nels, tp, fld, emin, nbits) \
|
||||
void helper_##op(CPUPPCState *env, uint32_t opcode) \
|
||||
void helper_##op(CPUPPCState *env, uint32_t opcode, ppc_vsr_t *xb) \
|
||||
{ \
|
||||
ppc_vsr_t *xb = &env->vsr[xB(opcode)]; \
|
||||
int i; \
|
||||
int fe_flag = 0; \
|
||||
int fg_flag = 0; \
|
||||
|
@ -3258,9 +3257,8 @@ VSX_TEST_DC(xvtstdcsp, 4, xB(opcode), float32, VsrW(i), VsrW(i), UINT32_MAX, 0)
|
|||
VSX_TEST_DC(xststdcdp, 1, xB(opcode), float64, VsrD(0), VsrD(0), 0, 1)
|
||||
VSX_TEST_DC(xststdcqp, 1, (rB(opcode) + 32), float128, f128, VsrD(0), 0, 1)
|
||||
|
||||
void helper_xststdcsp(CPUPPCState *env, uint32_t opcode)
|
||||
void helper_xststdcsp(CPUPPCState *env, uint32_t opcode, ppc_vsr_t *xb)
|
||||
{
|
||||
ppc_vsr_t *xb = &env->vsr[xB(opcode)];
|
||||
uint32_t dcmx, sign, exp;
|
||||
uint32_t cc, match = 0, not_sp = 0;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue