* [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 @ 2014-04-08 9:31 Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 01/15] PPC: E500: Set PIR default reset value rather than SPR value Alexander Graf ` (15 more replies) 0 siblings, 16 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc Hi Peter, This is my last 2.0 queue for ppc. Please pull. Alex The following changes since commit 55519a4b244e4822774b593e36647ecf7598286b: Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-2.0' into staging (2014-04-07 17:57:23 +0100) are available in the git repository at: git://github.com/agraf/qemu.git tags/signed-ppc-for-upstream for you to fetch changes up to 06f6e12491fd767b3b23573c438f925f6092e897: PPC: Add l1 cache sizes for 970 and above systems (2014-04-08 11:20:06 +0200) ---------------------------------------------------------------- Patch queue for ppc - 2014-04-08 This is the final queue for 2.0! It fixes a lot of bugs people have seen during testing: - Fix e500 SMP - Fix book3s_64 DEC - Fix VSX (new feature in 2.0) for LE hosts - Fix PR KVM on top of pHyp (SLOF update) ---------------------------------------------------------------- Alexander Graf (5): PPC: E500: Set PIR default reset value rather than SPR value PPC: Clean up DECR implementation PPC: Only enter MSR_POW when no interrupts pending ppce500_spin: Initialize struct properly PPC: Add l1 cache sizes for 970 and above systems Alexey Kardashevskiy (1): pseries: Update SLOF firmware image to qemu-slof-20140404 Tom Musta (9): softfloat: Introduce float32_to_uint64_round_to_zero target-ppc: Bug: VSX Convert to Integer Should Truncate target-ppc: Define Endian-Correct Accessors for VSR Field Access target-ppc: Correct LE Host Inversion of Lower VSRs target-ppc: Correct Simple VSR LE Host Inversions target-ppc: Correct VSX Scalar Compares target-ppc: Correct VSX FP to FP Conversions target-ppc: Correct VSX FP to Integer Conversion target-ppc: Correct VSX Integer to FP Conversion fpu/softfloat.c | 20 ++ hw/ppc/e500.c | 2 +- hw/ppc/ppc.c | 92 ++++++--- hw/ppc/ppce500_spin.c | 6 +- include/fpu/softfloat.h | 1 + include/hw/ppc/ppc.h | 3 + pc-bios/README | 2 +- pc-bios/slof.bin | Bin 921224 -> 921720 bytes roms/SLOF | 2 +- target-ppc/cpu.h | 1 + target-ppc/excp_helper.c | 5 +- target-ppc/fpu_helper.c | 494 ++++++++++++++++++++++---------------------- target-ppc/helper_regs.h | 2 +- target-ppc/translate_init.c | 8 + 14 files changed, 350 insertions(+), 288 deletions(-) ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 01/15] PPC: E500: Set PIR default reset value rather than SPR value 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 02/15] pseries: Update SLOF firmware image to qemu-slof-20140404 Alexander Graf ` (14 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc We now reset SPRs to their reset values on CPU reset. So if we want to have an SPR persistently changed, we need to change its default reset value rather than the value itself manually. Do this for SPR_BOOKE_PIR, fixing e500v2 SMP boot. Reported-by: Frederic Konrad <fred.konrad@greensocs.com> Signed-off-by: Alexander Graf <agraf@suse.de> Tested-by: KONRAD Frederic <fred.konrad@greensocs.com> --- hw/ppc/e500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index d7ba25f..f984b3e 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -649,7 +649,7 @@ void ppce500_init(QEMUMachineInitArgs *args, PPCE500Params *params) input = (qemu_irq *)env->irq_inputs; irqs[i][OPENPIC_OUTPUT_INT] = input[PPCE500_INPUT_INT]; irqs[i][OPENPIC_OUTPUT_CINT] = input[PPCE500_INPUT_CINT]; - env->spr[SPR_BOOKE_PIR] = cs->cpu_index = i; + env->spr_cb[SPR_BOOKE_PIR].default_value = cs->cpu_index = i; env->mpic_iack = MPC8544_CCSRBAR_BASE + MPC8544_MPIC_REGS_OFFSET + 0xa0; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 02/15] pseries: Update SLOF firmware image to qemu-slof-20140404 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 01/15] PPC: E500: Set PIR default reset value rather than SPR value Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 03/15] softfloat: Introduce float32_to_uint64_round_to_zero Alexander Graf ` (13 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, peter.maydell, qemu-ppc From: Alexey Kardashevskiy <aik@ozlabs.ru> The change log is: > Isolate sc 1 detection logic > build: auto-detect ppc64 architecture > cas: increase hcall buffer size to accomodate 256 cpus > usb: change device tree naming > usb-core: adjust port numbers in set_address > virtio-scsi: correct srplun comment > Fix kernel loading > Workaround to make grub2 assign server ip from dhcp ack packet only > ELF: Enter LE binary in LE mode > ELF loading should fail for virt != phys Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de> --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 921224 -> 921720 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index ef6008d..4381718 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -17,7 +17,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20140304. + built from git tag qemu-slof-20140404. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index a742bffcae7b6fa4003ac18f8c02d292a8e48d21..972e012e51ac61a2e31c9793e6c77c6a95925c3b 100644 GIT binary patch delta 194968 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
vZFoV=u{NT5<3FUy6zr$U65w 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�{EP^mDwVJ6upZPM;SRufhIBm*I;stT}kz70I` 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 H{oDT!<lo^d delta 192968 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 diff --git a/roms/SLOF b/roms/SLOF index af6b7bf..c90b50b 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit af6b7bf5879b6cd6825de2a107cb0e3219fb1df5 +Subproject commit c90b50b5055f976a0da3c032f26fb80157292adc -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 03/15] softfloat: Introduce float32_to_uint64_round_to_zero 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 01/15] PPC: E500: Set PIR default reset value rather than SPR value Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 02/15] pseries: Update SLOF firmware image to qemu-slof-20140404 Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 04/15] target-ppc: Bug: VSX Convert to Integer Should Truncate Alexander Graf ` (12 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This change adds the float32_to_uint64_round_to_zero function to the softfloat library. This function fills out the complement of float32 to INT round-to-zero conversion rountines, where INT is {int32_t, uint32_t, int64_t, uint64_t}. This contribution can be licensed under either the softfloat-2a or -2b license. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Alexander Graf <agraf@suse.de> --- fpu/softfloat.c | 20 ++++++++++++++++++++ include/fpu/softfloat.h | 1 + 2 files changed, 21 insertions(+) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 5f02c16..e00a6fb 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1628,6 +1628,26 @@ uint64 float32_to_uint64(float32 a STATUS_PARAM) /*---------------------------------------------------------------------------- | Returns the result of converting the single-precision floating-point value +| `a' to the 64-bit unsigned integer format. The conversion is +| performed according to the IEC/IEEE Standard for Binary Floating-Point +| Arithmetic, except that the conversion is always rounded toward zero. If +| `a' is a NaN, the largest unsigned integer is returned. Otherwise, if the +| conversion overflows, the largest unsigned integer is returned. If the +| 'a' is negative, the result is rounded and zero is returned; values that do +| not round to zero will raise the inexact flag. +*----------------------------------------------------------------------------*/ + +uint64 float32_to_uint64_round_to_zero(float32 a STATUS_PARAM) +{ + signed char current_rounding_mode = STATUS(float_rounding_mode); + set_float_rounding_mode(float_round_to_zero STATUS_VAR); + int64_t v = float32_to_uint64(a STATUS_VAR); + set_float_rounding_mode(current_rounding_mode STATUS_VAR); + return v; +} + +/*---------------------------------------------------------------------------- +| Returns the result of converting the single-precision floating-point value | `a' to the 64-bit two's complement integer format. The conversion is | performed according to the IEC/IEEE Standard for Binary Floating-Point | Arithmetic, except that the conversion is always rounded toward zero. If diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index db878c1..4b3090c 100644 --- a/include/fpu/softfloat.h +++ b/include/fpu/softfloat.h @@ -342,6 +342,7 @@ uint32 float32_to_uint32( float32 STATUS_PARAM ); uint32 float32_to_uint32_round_to_zero( float32 STATUS_PARAM ); int64 float32_to_int64( float32 STATUS_PARAM ); uint64 float32_to_uint64(float32 STATUS_PARAM); +uint64 float32_to_uint64_round_to_zero(float32 STATUS_PARAM); int64 float32_to_int64_round_to_zero( float32 STATUS_PARAM ); float64 float32_to_float64( float32 STATUS_PARAM ); floatx80 float32_to_floatx80( float32 STATUS_PARAM ); -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 04/15] target-ppc: Bug: VSX Convert to Integer Should Truncate 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (2 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 03/15] softfloat: Introduce float32_to_uint64_round_to_zero Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 05/15] target-ppc: Define Endian-Correct Accessors for VSR Field Access Alexander Graf ` (11 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> The various VSX Convert to Integer instructions should truncate the floating point number to an integer value, which is equivalent to a round-to-zero rounding mode. The existing VSX floating point to integer conversion helpers are erroneously using the rounding mode set int the PowerPC Floating Point Status and Control Register (FPSCR). This change corrects this defect by using the appropriate float*_to_*_round_to_zero() routines fro the softfloat library. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index fd91239..691d572 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -2568,7 +2568,8 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXCVI, 0); \ xt.tfld = rnan; \ } else { \ - xt.tfld = stp##_to_##ttp(xb.sfld, &env->fp_status); \ + xt.tfld = stp##_to_##ttp##_round_to_zero(xb.sfld, \ + &env->fp_status); \ if (env->fp_status.float_exception_flags & float_flag_invalid) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXCVI, 0); \ } \ -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 05/15] target-ppc: Define Endian-Correct Accessors for VSR Field Access 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (3 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 04/15] target-ppc: Bug: VSX Convert to Integer Should Truncate Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 06/15] target-ppc: Correct LE Host Inversion of Lower VSRs Alexander Graf ` (10 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This change defines accessors for VSR doubleword and word fields that are correct from a host Endian perspective. This allows code to use the Power ISA indexing numbers in code. For example, the xscvdpsxws instruction has a target VSR that looks like this: 0 32 64 127 +-----------+--------+-----------+-----------+ | undefined | SW | undefined | undefined | +-----------+--------+-----------+-----------+ VSX helper code will use VsrW(1) to access this field. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index 691d572..d79aae9 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -1782,6 +1782,14 @@ typedef union _ppc_vsr_t { float64 f64[2]; } ppc_vsr_t; +#if defined(HOST_WORDS_BIGENDIAN) +#define VsrW(i) u32[i] +#define VsrD(i) u64[i] +#else +#define VsrW(i) u32[3-(i)] +#define VsrD(i) u64[1-(i)] +#endif + static void getVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env) { if (n < 32) { -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 06/15] target-ppc: Correct LE Host Inversion of Lower VSRs 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (4 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 05/15] target-ppc: Define Endian-Correct Accessors for VSR Field Access Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 07/15] target-ppc: Correct Simple VSR LE Host Inversions Alexander Graf ` (9 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This change properly orders the doublewords of the VSRs 0-31. Because these registers are constructed from separate doublewords, they must be inverted on Little Endian hosts. The inversion is performed both when the VSR is read and when it is written. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index d79aae9..9fc7dd8 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -1793,8 +1793,8 @@ typedef union _ppc_vsr_t { static void getVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env) { if (n < 32) { - vsr->f64[0] = env->fpr[n]; - vsr->u64[1] = env->vsr[n]; + vsr->VsrD(0) = env->fpr[n]; + vsr->VsrD(1) = env->vsr[n]; } else { vsr->u64[0] = env->avr[n-32].u64[0]; vsr->u64[1] = env->avr[n-32].u64[1]; @@ -1804,8 +1804,8 @@ static void getVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env) static void putVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env) { if (n < 32) { - env->fpr[n] = vsr->f64[0]; - env->vsr[n] = vsr->u64[1]; + env->fpr[n] = vsr->VsrD(0); + env->vsr[n] = vsr->VsrD(1); } else { env->avr[n-32].u64[0] = vsr->u64[0]; env->avr[n-32].u64[1] = vsr->u64[1]; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 07/15] target-ppc: Correct Simple VSR LE Host Inversions 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (5 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 06/15] target-ppc: Correct LE Host Inversion of Lower VSRs Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 08/15] target-ppc: Correct VSX Scalar Compares Alexander Graf ` (8 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> A common pattern in the VSX helper code macros is the use of "x.fld[i]" where "x" is a VSR and "fld" is an argument to a macro ("f64" or "f32" is passed). This is not always correct on LE hosts. This change addresses all instances of this pattern to be "x.fld" where "fld" is: - "VsrD(0)" for scalar instructions accessing 64-bit numbers - "VsrD(i)" for vector instructions accessing 64-bit numbers - "VsrW(i)" for vector instructions accessing 32-bit numbers Note that there are no instances of this pattern where a scalar instruction accesses a 32-bit number. Note also that it would be correct to use "VsrD(i)" for scalar instructions since the loop index is only ever "0". I have choosen to use "VsrD(0)" instead ... it seems a little clearer. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 380 ++++++++++++++++++++++++------------------------ 1 file changed, 190 insertions(+), 190 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index 9fc7dd8..1c37b30 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -1820,7 +1820,7 @@ static void putVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env) * op - operation (add or sub) * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_ADD_SUB(name, op, nels, tp, fld, sfprf, r2sp) \ @@ -1837,44 +1837,44 @@ void helper_##name(CPUPPCState *env, uint32_t opcode) \ for (i = 0; i < nels; i++) { \ float_status tstat = env->fp_status; \ set_float_exception_flags(0, &tstat); \ - xt.fld[i] = tp##_##op(xa.fld[i], xb.fld[i], &tstat); \ + xt.fld = tp##_##op(xa.fld, xb.fld, &tstat); \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if (tp##_is_infinity(xa.fld[i]) && tp##_is_infinity(xb.fld[i])) {\ + if (tp##_is_infinity(xa.fld) && tp##_is_infinity(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, sfprf); \ - } else if (tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(xb.fld[i])) { \ + } else if (tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ } \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ putVSR(xT(opcode), &xt, env); \ helper_float_check_status(env); \ } -VSX_ADD_SUB(xsadddp, add, 1, float64, f64, 1, 0) -VSX_ADD_SUB(xsaddsp, add, 1, float64, f64, 1, 1) -VSX_ADD_SUB(xvadddp, add, 2, float64, f64, 0, 0) -VSX_ADD_SUB(xvaddsp, add, 4, float32, f32, 0, 0) -VSX_ADD_SUB(xssubdp, sub, 1, float64, f64, 1, 0) -VSX_ADD_SUB(xssubsp, sub, 1, float64, f64, 1, 1) -VSX_ADD_SUB(xvsubdp, sub, 2, float64, f64, 0, 0) -VSX_ADD_SUB(xvsubsp, sub, 4, float32, f32, 0, 0) +VSX_ADD_SUB(xsadddp, add, 1, float64, VsrD(0), 1, 0) +VSX_ADD_SUB(xsaddsp, add, 1, float64, VsrD(0), 1, 1) +VSX_ADD_SUB(xvadddp, add, 2, float64, VsrD(i), 0, 0) +VSX_ADD_SUB(xvaddsp, add, 4, float32, VsrW(i), 0, 0) +VSX_ADD_SUB(xssubdp, sub, 1, float64, VsrD(0), 1, 0) +VSX_ADD_SUB(xssubsp, sub, 1, float64, VsrD(0), 1, 1) +VSX_ADD_SUB(xvsubdp, sub, 2, float64, VsrD(i), 0, 0) +VSX_ADD_SUB(xvsubsp, sub, 4, float32, VsrW(i), 0, 0) /* VSX_MUL - VSX floating point multiply * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_MUL(op, nels, tp, fld, sfprf, r2sp) \ @@ -1891,25 +1891,25 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ for (i = 0; i < nels; i++) { \ float_status tstat = env->fp_status; \ set_float_exception_flags(0, &tstat); \ - xt.fld[i] = tp##_mul(xa.fld[i], xb.fld[i], &tstat); \ + xt.fld = tp##_mul(xa.fld, xb.fld, &tstat); \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if ((tp##_is_infinity(xa.fld[i]) && tp##_is_zero(xb.fld[i])) || \ - (tp##_is_infinity(xb.fld[i]) && tp##_is_zero(xa.fld[i]))) { \ + if ((tp##_is_infinity(xa.fld) && tp##_is_zero(xb.fld)) || \ + (tp##_is_infinity(xb.fld) && tp##_is_zero(xa.fld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXIMZ, sfprf); \ - } else if (tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(xb.fld[i])) { \ + } else if (tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ } \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -1917,16 +1917,16 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_MUL(xsmuldp, 1, float64, f64, 1, 0) -VSX_MUL(xsmulsp, 1, float64, f64, 1, 1) -VSX_MUL(xvmuldp, 2, float64, f64, 0, 0) -VSX_MUL(xvmulsp, 4, float32, f32, 0, 0) +VSX_MUL(xsmuldp, 1, float64, VsrD(0), 1, 0) +VSX_MUL(xsmulsp, 1, float64, VsrD(0), 1, 1) +VSX_MUL(xvmuldp, 2, float64, VsrD(i), 0, 0) +VSX_MUL(xvmulsp, 4, float32, VsrW(i), 0, 0) /* VSX_DIV - VSX floating point divide * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_DIV(op, nels, tp, fld, sfprf, r2sp) \ @@ -1943,27 +1943,27 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ for (i = 0; i < nels; i++) { \ float_status tstat = env->fp_status; \ set_float_exception_flags(0, &tstat); \ - xt.fld[i] = tp##_div(xa.fld[i], xb.fld[i], &tstat); \ + xt.fld = tp##_div(xa.fld, xb.fld, &tstat); \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if (tp##_is_infinity(xa.fld[i]) && tp##_is_infinity(xb.fld[i])) { \ + if (tp##_is_infinity(xa.fld) && tp##_is_infinity(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXIDI, sfprf); \ - } else if (tp##_is_zero(xa.fld[i]) && \ - tp##_is_zero(xb.fld[i])) { \ + } else if (tp##_is_zero(xa.fld) && \ + tp##_is_zero(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXZDZ, sfprf); \ - } else if (tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(xb.fld[i])) { \ + } else if (tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ } \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -1971,16 +1971,16 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_DIV(xsdivdp, 1, float64, f64, 1, 0) -VSX_DIV(xsdivsp, 1, float64, f64, 1, 1) -VSX_DIV(xvdivdp, 2, float64, f64, 0, 0) -VSX_DIV(xvdivsp, 4, float32, f32, 0, 0) +VSX_DIV(xsdivdp, 1, float64, VsrD(0), 1, 0) +VSX_DIV(xsdivsp, 1, float64, VsrD(0), 1, 1) +VSX_DIV(xvdivdp, 2, float64, VsrD(i), 0, 0) +VSX_DIV(xvdivsp, 4, float32, VsrW(i), 0, 0) /* VSX_RE - VSX floating point reciprocal estimate * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_RE(op, nels, tp, fld, sfprf, r2sp) \ @@ -1994,17 +1994,17 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_reset_fpstatus(env); \ \ for (i = 0; i < nels; i++) { \ - if (unlikely(tp##_is_signaling_nan(xb.fld[i]))) { \ + if (unlikely(tp##_is_signaling_nan(xb.fld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ - xt.fld[i] = tp##_div(tp##_one, xb.fld[i], &env->fp_status); \ + xt.fld = tp##_div(tp##_one, xb.fld, &env->fp_status); \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[0], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -2012,16 +2012,16 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_RE(xsredp, 1, float64, f64, 1, 0) -VSX_RE(xsresp, 1, float64, f64, 1, 1) -VSX_RE(xvredp, 2, float64, f64, 0, 0) -VSX_RE(xvresp, 4, float32, f32, 0, 0) +VSX_RE(xsredp, 1, float64, VsrD(0), 1, 0) +VSX_RE(xsresp, 1, float64, VsrD(0), 1, 1) +VSX_RE(xvredp, 2, float64, VsrD(i), 0, 0) +VSX_RE(xvresp, 4, float32, VsrW(i), 0, 0) /* VSX_SQRT - VSX floating point square root * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_SQRT(op, nels, tp, fld, sfprf, r2sp) \ @@ -2037,23 +2037,23 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ for (i = 0; i < nels; i++) { \ float_status tstat = env->fp_status; \ set_float_exception_flags(0, &tstat); \ - xt.fld[i] = tp##_sqrt(xb.fld[i], &tstat); \ + xt.fld = tp##_sqrt(xb.fld, &tstat); \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if (tp##_is_neg(xb.fld[i]) && !tp##_is_zero(xb.fld[i])) { \ + if (tp##_is_neg(xb.fld) && !tp##_is_zero(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, sfprf); \ - } else if (tp##_is_signaling_nan(xb.fld[i])) { \ + } else if (tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ } \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -2061,16 +2061,16 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_SQRT(xssqrtdp, 1, float64, f64, 1, 0) -VSX_SQRT(xssqrtsp, 1, float64, f64, 1, 1) -VSX_SQRT(xvsqrtdp, 2, float64, f64, 0, 0) -VSX_SQRT(xvsqrtsp, 4, float32, f32, 0, 0) +VSX_SQRT(xssqrtdp, 1, float64, VsrD(0), 1, 0) +VSX_SQRT(xssqrtsp, 1, float64, VsrD(0), 1, 1) +VSX_SQRT(xvsqrtdp, 2, float64, VsrD(i), 0, 0) +VSX_SQRT(xvsqrtsp, 4, float32, VsrW(i), 0, 0) /* VSX_RSQRTE - VSX floating point reciprocal square root estimate * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * sfprf - set FPRF */ #define VSX_RSQRTE(op, nels, tp, fld, sfprf, r2sp) \ @@ -2086,24 +2086,24 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ for (i = 0; i < nels; i++) { \ float_status tstat = env->fp_status; \ set_float_exception_flags(0, &tstat); \ - xt.fld[i] = tp##_sqrt(xb.fld[i], &tstat); \ - xt.fld[i] = tp##_div(tp##_one, xt.fld[i], &tstat); \ + xt.fld = tp##_sqrt(xb.fld, &tstat); \ + xt.fld = tp##_div(tp##_one, xt.fld, &tstat); \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if (tp##_is_neg(xb.fld[i]) && !tp##_is_zero(xb.fld[i])) { \ + if (tp##_is_neg(xb.fld) && !tp##_is_zero(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, sfprf); \ - } else if (tp##_is_signaling_nan(xb.fld[i])) { \ + } else if (tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ } \ \ if (r2sp) { \ - xt.fld[i] = helper_frsp(env, xt.fld[i]); \ + xt.fld = helper_frsp(env, xt.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -2111,16 +2111,16 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_RSQRTE(xsrsqrtedp, 1, float64, f64, 1, 0) -VSX_RSQRTE(xsrsqrtesp, 1, float64, f64, 1, 1) -VSX_RSQRTE(xvrsqrtedp, 2, float64, f64, 0, 0) -VSX_RSQRTE(xvrsqrtesp, 4, float32, f32, 0, 0) +VSX_RSQRTE(xsrsqrtedp, 1, float64, VsrD(0), 1, 0) +VSX_RSQRTE(xsrsqrtesp, 1, float64, VsrD(0), 1, 1) +VSX_RSQRTE(xvrsqrtedp, 2, float64, VsrD(i), 0, 0) +VSX_RSQRTE(xvrsqrtesp, 4, float32, VsrW(i), 0, 0) /* VSX_TDIV - VSX floating point test for divide * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * emin - minimum unbiased exponent * emax - maximum unbiased exponent * nbits - number of fraction bits @@ -2137,28 +2137,28 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xB(opcode), &xb, env); \ \ for (i = 0; i < nels; i++) { \ - if (unlikely(tp##_is_infinity(xa.fld[i]) || \ - tp##_is_infinity(xb.fld[i]) || \ - tp##_is_zero(xb.fld[i]))) { \ + if (unlikely(tp##_is_infinity(xa.fld) || \ + tp##_is_infinity(xb.fld) || \ + tp##_is_zero(xb.fld))) { \ fe_flag = 1; \ fg_flag = 1; \ } else { \ - int e_a = ppc_##tp##_get_unbiased_exp(xa.fld[i]); \ - int e_b = ppc_##tp##_get_unbiased_exp(xb.fld[i]); \ + int e_a = ppc_##tp##_get_unbiased_exp(xa.fld); \ + int e_b = ppc_##tp##_get_unbiased_exp(xb.fld); \ \ - if (unlikely(tp##_is_any_nan(xa.fld[i]) || \ - tp##_is_any_nan(xb.fld[i]))) { \ + if (unlikely(tp##_is_any_nan(xa.fld) || \ + tp##_is_any_nan(xb.fld))) { \ fe_flag = 1; \ } else if ((e_b <= emin) || (e_b >= (emax-2))) { \ fe_flag = 1; \ - } else if (!tp##_is_zero(xa.fld[i]) && \ + } else if (!tp##_is_zero(xa.fld) && \ (((e_a - e_b) >= emax) || \ ((e_a - e_b) <= (emin+1)) || \ (e_a <= (emin+nbits)))) { \ fe_flag = 1; \ } \ \ - if (unlikely(tp##_is_zero_or_denormal(xb.fld[i]))) { \ + if (unlikely(tp##_is_zero_or_denormal(xb.fld))) { \ /* XB is not zero because of the above check and */ \ /* so must be denormalized. */ \ fg_flag = 1; \ @@ -2169,15 +2169,15 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ env->crf[BF(opcode)] = 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0); \ } -VSX_TDIV(xstdivdp, 1, float64, f64, -1022, 1023, 52) -VSX_TDIV(xvtdivdp, 2, float64, f64, -1022, 1023, 52) -VSX_TDIV(xvtdivsp, 4, float32, f32, -126, 127, 23) +VSX_TDIV(xstdivdp, 1, float64, VsrD(0), -1022, 1023, 52) +VSX_TDIV(xvtdivdp, 2, float64, VsrD(i), -1022, 1023, 52) +VSX_TDIV(xvtdivsp, 4, float32, VsrW(i), -126, 127, 23) /* VSX_TSQRT - VSX floating point test for square root * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * emin - minimum unbiased exponent * emax - maximum unbiased exponent * nbits - number of fraction bits @@ -2194,25 +2194,25 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xB(opcode), &xb, env); \ \ for (i = 0; i < nels; i++) { \ - if (unlikely(tp##_is_infinity(xb.fld[i]) || \ - tp##_is_zero(xb.fld[i]))) { \ + if (unlikely(tp##_is_infinity(xb.fld) || \ + tp##_is_zero(xb.fld))) { \ fe_flag = 1; \ fg_flag = 1; \ } else { \ - int e_b = ppc_##tp##_get_unbiased_exp(xb.fld[i]); \ + int e_b = ppc_##tp##_get_unbiased_exp(xb.fld); \ \ - if (unlikely(tp##_is_any_nan(xb.fld[i]))) { \ + if (unlikely(tp##_is_any_nan(xb.fld))) { \ fe_flag = 1; \ - } else if (unlikely(tp##_is_zero(xb.fld[i]))) { \ + } else if (unlikely(tp##_is_zero(xb.fld))) { \ fe_flag = 1; \ - } else if (unlikely(tp##_is_neg(xb.fld[i]))) { \ + } else if (unlikely(tp##_is_neg(xb.fld))) { \ fe_flag = 1; \ - } else if (!tp##_is_zero(xb.fld[i]) && \ + } else if (!tp##_is_zero(xb.fld) && \ (e_b <= (emin+nbits))) { \ fe_flag = 1; \ } \ \ - if (unlikely(tp##_is_zero_or_denormal(xb.fld[i]))) { \ + if (unlikely(tp##_is_zero_or_denormal(xb.fld))) { \ /* XB is not zero because of the above check and */ \ /* therefore must be denormalized. */ \ fg_flag = 1; \ @@ -2223,15 +2223,15 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ env->crf[BF(opcode)] = 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0); \ } -VSX_TSQRT(xstsqrtdp, 1, float64, f64, -1022, 52) -VSX_TSQRT(xvtsqrtdp, 2, float64, f64, -1022, 52) -VSX_TSQRT(xvtsqrtsp, 4, float32, f32, -126, 23) +VSX_TSQRT(xstsqrtdp, 1, float64, VsrD(0), -1022, 52) +VSX_TSQRT(xvtsqrtdp, 2, float64, VsrD(i), -1022, 52) +VSX_TSQRT(xvtsqrtsp, 4, float32, VsrW(i), -126, 23) /* VSX_MADD - VSX floating point muliply/add variations * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * maddflgs - flags for the float*muladd routine that control the * various forms (madd, msub, nmadd, nmsub) * afrm - A form (1=A, 0=M) @@ -2267,43 +2267,43 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ /* Avoid double rounding errors by rounding the intermediate */ \ /* result to odd. */ \ set_float_rounding_mode(float_round_to_zero, &tstat); \ - xt_out.fld[i] = tp##_muladd(xa.fld[i], b->fld[i], c->fld[i], \ + xt_out.fld = tp##_muladd(xa.fld, b->fld, c->fld, \ maddflgs, &tstat); \ - xt_out.fld[i] |= (get_float_exception_flags(&tstat) & \ + xt_out.fld |= (get_float_exception_flags(&tstat) & \ float_flag_inexact) != 0; \ } else { \ - xt_out.fld[i] = tp##_muladd(xa.fld[i], b->fld[i], c->fld[i], \ + xt_out.fld = tp##_muladd(xa.fld, b->fld, c->fld, \ maddflgs, &tstat); \ } \ env->fp_status.float_exception_flags |= tstat.float_exception_flags; \ \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { \ - if (tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(b->fld[i]) || \ - tp##_is_signaling_nan(c->fld[i])) { \ + if (tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(b->fld) || \ + tp##_is_signaling_nan(c->fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ tstat.float_exception_flags &= ~float_flag_invalid; \ } \ - if ((tp##_is_infinity(xa.fld[i]) && tp##_is_zero(b->fld[i])) || \ - (tp##_is_zero(xa.fld[i]) && tp##_is_infinity(b->fld[i]))) { \ - xt_out.fld[i] = float64_to_##tp(fload_invalid_op_excp(env, \ + if ((tp##_is_infinity(xa.fld) && tp##_is_zero(b->fld)) || \ + (tp##_is_zero(xa.fld) && tp##_is_infinity(b->fld))) { \ + xt_out.fld = float64_to_##tp(fload_invalid_op_excp(env, \ POWERPC_EXCP_FP_VXIMZ, sfprf), &env->fp_status); \ tstat.float_exception_flags &= ~float_flag_invalid; \ } \ if ((tstat.float_exception_flags & float_flag_invalid) && \ - ((tp##_is_infinity(xa.fld[i]) || \ - tp##_is_infinity(b->fld[i])) && \ - tp##_is_infinity(c->fld[i]))) { \ + ((tp##_is_infinity(xa.fld) || \ + tp##_is_infinity(b->fld)) && \ + tp##_is_infinity(c->fld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, sfprf); \ } \ } \ \ if (r2sp) { \ - xt_out.fld[i] = helper_frsp(env, xt_out.fld[i]); \ + xt_out.fld = helper_frsp(env, xt_out.fld); \ } \ \ if (sfprf) { \ - helper_compute_fprf(env, xt_out.fld[i], sfprf); \ + helper_compute_fprf(env, xt_out.fld, sfprf); \ } \ } \ putVSR(xT(opcode), &xt_out, env); \ @@ -2315,41 +2315,41 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ #define NMADD_FLGS float_muladd_negate_result #define NMSUB_FLGS (float_muladd_negate_c | float_muladd_negate_result) -VSX_MADD(xsmaddadp, 1, float64, f64, MADD_FLGS, 1, 1, 0) -VSX_MADD(xsmaddmdp, 1, float64, f64, MADD_FLGS, 0, 1, 0) -VSX_MADD(xsmsubadp, 1, float64, f64, MSUB_FLGS, 1, 1, 0) -VSX_MADD(xsmsubmdp, 1, float64, f64, MSUB_FLGS, 0, 1, 0) -VSX_MADD(xsnmaddadp, 1, float64, f64, NMADD_FLGS, 1, 1, 0) -VSX_MADD(xsnmaddmdp, 1, float64, f64, NMADD_FLGS, 0, 1, 0) -VSX_MADD(xsnmsubadp, 1, float64, f64, NMSUB_FLGS, 1, 1, 0) -VSX_MADD(xsnmsubmdp, 1, float64, f64, NMSUB_FLGS, 0, 1, 0) - -VSX_MADD(xsmaddasp, 1, float64, f64, MADD_FLGS, 1, 1, 1) -VSX_MADD(xsmaddmsp, 1, float64, f64, MADD_FLGS, 0, 1, 1) -VSX_MADD(xsmsubasp, 1, float64, f64, MSUB_FLGS, 1, 1, 1) -VSX_MADD(xsmsubmsp, 1, float64, f64, MSUB_FLGS, 0, 1, 1) -VSX_MADD(xsnmaddasp, 1, float64, f64, NMADD_FLGS, 1, 1, 1) -VSX_MADD(xsnmaddmsp, 1, float64, f64, NMADD_FLGS, 0, 1, 1) -VSX_MADD(xsnmsubasp, 1, float64, f64, NMSUB_FLGS, 1, 1, 1) -VSX_MADD(xsnmsubmsp, 1, float64, f64, NMSUB_FLGS, 0, 1, 1) - -VSX_MADD(xvmaddadp, 2, float64, f64, MADD_FLGS, 1, 0, 0) -VSX_MADD(xvmaddmdp, 2, float64, f64, MADD_FLGS, 0, 0, 0) -VSX_MADD(xvmsubadp, 2, float64, f64, MSUB_FLGS, 1, 0, 0) -VSX_MADD(xvmsubmdp, 2, float64, f64, MSUB_FLGS, 0, 0, 0) -VSX_MADD(xvnmaddadp, 2, float64, f64, NMADD_FLGS, 1, 0, 0) -VSX_MADD(xvnmaddmdp, 2, float64, f64, NMADD_FLGS, 0, 0, 0) -VSX_MADD(xvnmsubadp, 2, float64, f64, NMSUB_FLGS, 1, 0, 0) -VSX_MADD(xvnmsubmdp, 2, float64, f64, NMSUB_FLGS, 0, 0, 0) - -VSX_MADD(xvmaddasp, 4, float32, f32, MADD_FLGS, 1, 0, 0) -VSX_MADD(xvmaddmsp, 4, float32, f32, MADD_FLGS, 0, 0, 0) -VSX_MADD(xvmsubasp, 4, float32, f32, MSUB_FLGS, 1, 0, 0) -VSX_MADD(xvmsubmsp, 4, float32, f32, MSUB_FLGS, 0, 0, 0) -VSX_MADD(xvnmaddasp, 4, float32, f32, NMADD_FLGS, 1, 0, 0) -VSX_MADD(xvnmaddmsp, 4, float32, f32, NMADD_FLGS, 0, 0, 0) -VSX_MADD(xvnmsubasp, 4, float32, f32, NMSUB_FLGS, 1, 0, 0) -VSX_MADD(xvnmsubmsp, 4, float32, f32, NMSUB_FLGS, 0, 0, 0) +VSX_MADD(xsmaddadp, 1, float64, VsrD(0), MADD_FLGS, 1, 1, 0) +VSX_MADD(xsmaddmdp, 1, float64, VsrD(0), MADD_FLGS, 0, 1, 0) +VSX_MADD(xsmsubadp, 1, float64, VsrD(0), MSUB_FLGS, 1, 1, 0) +VSX_MADD(xsmsubmdp, 1, float64, VsrD(0), MSUB_FLGS, 0, 1, 0) +VSX_MADD(xsnmaddadp, 1, float64, VsrD(0), NMADD_FLGS, 1, 1, 0) +VSX_MADD(xsnmaddmdp, 1, float64, VsrD(0), NMADD_FLGS, 0, 1, 0) +VSX_MADD(xsnmsubadp, 1, float64, VsrD(0), NMSUB_FLGS, 1, 1, 0) +VSX_MADD(xsnmsubmdp, 1, float64, VsrD(0), NMSUB_FLGS, 0, 1, 0) + +VSX_MADD(xsmaddasp, 1, float64, VsrD(0), MADD_FLGS, 1, 1, 1) +VSX_MADD(xsmaddmsp, 1, float64, VsrD(0), MADD_FLGS, 0, 1, 1) +VSX_MADD(xsmsubasp, 1, float64, VsrD(0), MSUB_FLGS, 1, 1, 1) +VSX_MADD(xsmsubmsp, 1, float64, VsrD(0), MSUB_FLGS, 0, 1, 1) +VSX_MADD(xsnmaddasp, 1, float64, VsrD(0), NMADD_FLGS, 1, 1, 1) +VSX_MADD(xsnmaddmsp, 1, float64, VsrD(0), NMADD_FLGS, 0, 1, 1) +VSX_MADD(xsnmsubasp, 1, float64, VsrD(0), NMSUB_FLGS, 1, 1, 1) +VSX_MADD(xsnmsubmsp, 1, float64, VsrD(0), NMSUB_FLGS, 0, 1, 1) + +VSX_MADD(xvmaddadp, 2, float64, VsrD(i), MADD_FLGS, 1, 0, 0) +VSX_MADD(xvmaddmdp, 2, float64, VsrD(i), MADD_FLGS, 0, 0, 0) +VSX_MADD(xvmsubadp, 2, float64, VsrD(i), MSUB_FLGS, 1, 0, 0) +VSX_MADD(xvmsubmdp, 2, float64, VsrD(i), MSUB_FLGS, 0, 0, 0) +VSX_MADD(xvnmaddadp, 2, float64, VsrD(i), NMADD_FLGS, 1, 0, 0) +VSX_MADD(xvnmaddmdp, 2, float64, VsrD(i), NMADD_FLGS, 0, 0, 0) +VSX_MADD(xvnmsubadp, 2, float64, VsrD(i), NMSUB_FLGS, 1, 0, 0) +VSX_MADD(xvnmsubmdp, 2, float64, VsrD(i), NMSUB_FLGS, 0, 0, 0) + +VSX_MADD(xvmaddasp, 4, float32, VsrW(i), MADD_FLGS, 1, 0, 0) +VSX_MADD(xvmaddmsp, 4, float32, VsrW(i), MADD_FLGS, 0, 0, 0) +VSX_MADD(xvmsubasp, 4, float32, VsrW(i), MSUB_FLGS, 1, 0, 0) +VSX_MADD(xvmsubmsp, 4, float32, VsrW(i), MSUB_FLGS, 0, 0, 0) +VSX_MADD(xvnmaddasp, 4, float32, VsrW(i), NMADD_FLGS, 1, 0, 0) +VSX_MADD(xvnmaddmsp, 4, float32, VsrW(i), NMADD_FLGS, 0, 0, 0) +VSX_MADD(xvnmsubasp, 4, float32, VsrW(i), NMSUB_FLGS, 1, 0, 0) +VSX_MADD(xvnmsubmsp, 4, float32, VsrW(i), NMSUB_FLGS, 0, 0, 0) #define VSX_SCALAR_CMP(op, ordered) \ void helper_##op(CPUPPCState *env, uint32_t opcode) \ @@ -2398,7 +2398,7 @@ VSX_SCALAR_CMP(xscmpudp, 0) * op - operation (max or min) * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) */ #define VSX_MAX_MIN(name, op, nels, tp, fld) \ void helper_##name(CPUPPCState *env, uint32_t opcode) \ @@ -2411,9 +2411,9 @@ void helper_##name(CPUPPCState *env, uint32_t opcode) \ getVSR(xT(opcode), &xt, env); \ \ for (i = 0; i < nels; i++) { \ - xt.fld[i] = tp##_##op(xa.fld[i], xb.fld[i], &env->fp_status); \ - if (unlikely(tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(xb.fld[i]))) { \ + xt.fld = tp##_##op(xa.fld, xb.fld, &env->fp_status); \ + if (unlikely(tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(xb.fld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ } \ } \ @@ -2422,18 +2422,18 @@ void helper_##name(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_MAX_MIN(xsmaxdp, maxnum, 1, float64, f64) -VSX_MAX_MIN(xvmaxdp, maxnum, 2, float64, f64) -VSX_MAX_MIN(xvmaxsp, maxnum, 4, float32, f32) -VSX_MAX_MIN(xsmindp, minnum, 1, float64, f64) -VSX_MAX_MIN(xvmindp, minnum, 2, float64, f64) -VSX_MAX_MIN(xvminsp, minnum, 4, float32, f32) +VSX_MAX_MIN(xsmaxdp, maxnum, 1, float64, VsrD(0)) +VSX_MAX_MIN(xvmaxdp, maxnum, 2, float64, VsrD(i)) +VSX_MAX_MIN(xvmaxsp, maxnum, 4, float32, VsrW(i)) +VSX_MAX_MIN(xsmindp, minnum, 1, float64, VsrD(0)) +VSX_MAX_MIN(xvmindp, minnum, 2, float64, VsrD(i)) +VSX_MAX_MIN(xvminsp, minnum, 4, float32, VsrW(i)) /* VSX_CMP - VSX floating point compare * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * cmp - comparison operation * svxvc - set VXVC bit */ @@ -2450,23 +2450,23 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xT(opcode), &xt, env); \ \ for (i = 0; i < nels; i++) { \ - if (unlikely(tp##_is_any_nan(xa.fld[i]) || \ - tp##_is_any_nan(xb.fld[i]))) { \ - if (tp##_is_signaling_nan(xa.fld[i]) || \ - tp##_is_signaling_nan(xb.fld[i])) { \ + if (unlikely(tp##_is_any_nan(xa.fld) || \ + tp##_is_any_nan(xb.fld))) { \ + if (tp##_is_signaling_nan(xa.fld) || \ + tp##_is_signaling_nan(xb.fld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ } \ if (svxvc) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXVC, 0); \ } \ - xt.fld[i] = 0; \ + xt.fld = 0; \ all_true = 0; \ } else { \ - if (tp##_##cmp(xb.fld[i], xa.fld[i], &env->fp_status) == 1) { \ - xt.fld[i] = -1; \ + if (tp##_##cmp(xb.fld, xa.fld, &env->fp_status) == 1) { \ + xt.fld = -1; \ all_false = 0; \ } else { \ - xt.fld[i] = 0; \ + xt.fld = 0; \ all_true = 0; \ } \ } \ @@ -2479,12 +2479,12 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_CMP(xvcmpeqdp, 2, float64, f64, eq, 0) -VSX_CMP(xvcmpgedp, 2, float64, f64, le, 1) -VSX_CMP(xvcmpgtdp, 2, float64, f64, lt, 1) -VSX_CMP(xvcmpeqsp, 4, float32, f32, eq, 0) -VSX_CMP(xvcmpgesp, 4, float32, f32, le, 1) -VSX_CMP(xvcmpgtsp, 4, float32, f32, lt, 1) +VSX_CMP(xvcmpeqdp, 2, float64, VsrD(i), eq, 0) +VSX_CMP(xvcmpgedp, 2, float64, VsrD(i), le, 1) +VSX_CMP(xvcmpgtdp, 2, float64, VsrD(i), lt, 1) +VSX_CMP(xvcmpeqsp, 4, float32, VsrW(i), eq, 0) +VSX_CMP(xvcmpgesp, 4, float32, VsrW(i), le, 1) +VSX_CMP(xvcmpgtsp, 4, float32, VsrW(i), lt, 1) #if defined(HOST_WORDS_BIGENDIAN) #define JOFFSET 0 @@ -2671,7 +2671,7 @@ VSX_CVT_INT_TO_FP(xvcvuxwsp, 4, uint32, float32, u32[j], f32[i], i, 0, 0) * op - instruction mnemonic * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) - * fld - vsr_t field (f32 or f64) + * fld - vsr_t field (VsrD(*) or VsrW(*)) * rmode - rounding mode * sfprf - set FPRF */ @@ -2688,14 +2688,14 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ } \ \ for (i = 0; i < nels; i++) { \ - if (unlikely(tp##_is_signaling_nan(xb.fld[i]))) { \ + if (unlikely(tp##_is_signaling_nan(xb.fld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ - xt.fld[i] = tp##_snan_to_qnan(xb.fld[i]); \ + xt.fld = tp##_snan_to_qnan(xb.fld); \ } else { \ - xt.fld[i] = tp##_round_to_int(xb.fld[i], &env->fp_status); \ + xt.fld = tp##_round_to_int(xb.fld, &env->fp_status); \ } \ if (sfprf) { \ - helper_compute_fprf(env, xt.fld[i], sfprf); \ + helper_compute_fprf(env, xt.fld, sfprf); \ } \ } \ \ @@ -2711,23 +2711,23 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_ROUND(xsrdpi, 1, float64, f64, float_round_nearest_even, 1) -VSX_ROUND(xsrdpic, 1, float64, f64, FLOAT_ROUND_CURRENT, 1) -VSX_ROUND(xsrdpim, 1, float64, f64, float_round_down, 1) -VSX_ROUND(xsrdpip, 1, float64, f64, float_round_up, 1) -VSX_ROUND(xsrdpiz, 1, float64, f64, float_round_to_zero, 1) +VSX_ROUND(xsrdpi, 1, float64, VsrD(0), float_round_nearest_even, 1) +VSX_ROUND(xsrdpic, 1, float64, VsrD(0), FLOAT_ROUND_CURRENT, 1) +VSX_ROUND(xsrdpim, 1, float64, VsrD(0), float_round_down, 1) +VSX_ROUND(xsrdpip, 1, float64, VsrD(0), float_round_up, 1) +VSX_ROUND(xsrdpiz, 1, float64, VsrD(0), float_round_to_zero, 1) -VSX_ROUND(xvrdpi, 2, float64, f64, float_round_nearest_even, 0) -VSX_ROUND(xvrdpic, 2, float64, f64, FLOAT_ROUND_CURRENT, 0) -VSX_ROUND(xvrdpim, 2, float64, f64, float_round_down, 0) -VSX_ROUND(xvrdpip, 2, float64, f64, float_round_up, 0) -VSX_ROUND(xvrdpiz, 2, float64, f64, float_round_to_zero, 0) +VSX_ROUND(xvrdpi, 2, float64, VsrD(i), float_round_nearest_even, 0) +VSX_ROUND(xvrdpic, 2, float64, VsrD(i), FLOAT_ROUND_CURRENT, 0) +VSX_ROUND(xvrdpim, 2, float64, VsrD(i), float_round_down, 0) +VSX_ROUND(xvrdpip, 2, float64, VsrD(i), float_round_up, 0) +VSX_ROUND(xvrdpiz, 2, float64, VsrD(i), float_round_to_zero, 0) -VSX_ROUND(xvrspi, 4, float32, f32, float_round_nearest_even, 0) -VSX_ROUND(xvrspic, 4, float32, f32, FLOAT_ROUND_CURRENT, 0) -VSX_ROUND(xvrspim, 4, float32, f32, float_round_down, 0) -VSX_ROUND(xvrspip, 4, float32, f32, float_round_up, 0) -VSX_ROUND(xvrspiz, 4, float32, f32, float_round_to_zero, 0) +VSX_ROUND(xvrspi, 4, float32, VsrW(i), float_round_nearest_even, 0) +VSX_ROUND(xvrspic, 4, float32, VsrW(i), FLOAT_ROUND_CURRENT, 0) +VSX_ROUND(xvrspim, 4, float32, VsrW(i), float_round_down, 0) +VSX_ROUND(xvrspip, 4, float32, VsrW(i), float_round_up, 0) +VSX_ROUND(xvrspiz, 4, float32, VsrW(i), float_round_to_zero, 0) uint64_t helper_xsrsp(CPUPPCState *env, uint64_t xb) { -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 08/15] target-ppc: Correct VSX Scalar Compares 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (6 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 07/15] target-ppc: Correct Simple VSR LE Host Inversions Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 09/15] target-ppc: Correct VSX FP to FP Conversions Alexander Graf ` (7 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This change fixes the VSX scalar compare instructions. The existing usage of "x.f64[0]" is changed to "x.VsrD(0)". Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index 1c37b30..6233d5e 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -2360,10 +2360,10 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xA(opcode), &xa, env); \ getVSR(xB(opcode), &xb, env); \ \ - if (unlikely(float64_is_any_nan(xa.f64[0]) || \ - float64_is_any_nan(xb.f64[0]))) { \ - if (float64_is_signaling_nan(xa.f64[0]) || \ - float64_is_signaling_nan(xb.f64[0])) { \ + if (unlikely(float64_is_any_nan(xa.VsrD(0)) || \ + float64_is_any_nan(xb.VsrD(0)))) { \ + if (float64_is_signaling_nan(xa.VsrD(0)) || \ + float64_is_signaling_nan(xb.VsrD(0))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ } \ if (ordered) { \ @@ -2371,9 +2371,10 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ } \ cc = 1; \ } else { \ - if (float64_lt(xa.f64[0], xb.f64[0], &env->fp_status)) { \ + if (float64_lt(xa.VsrD(0), xb.VsrD(0), &env->fp_status)) { \ cc = 8; \ - } else if (!float64_le(xa.f64[0], xb.f64[0], &env->fp_status)) { \ + } else if (!float64_le(xa.VsrD(0), xb.VsrD(0), \ + &env->fp_status)) { \ cc = 4; \ } else { \ cc = 2; \ -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 09/15] target-ppc: Correct VSX FP to FP Conversions 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (7 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 08/15] target-ppc: Correct VSX Scalar Compares Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 10/15] target-ppc: Correct VSX FP to Integer Conversion Alexander Graf ` (6 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This change corrects the VSX double precision to single precision and single precision to double precisions conversion routines. The endian correct accessors are now used. The auxiliary "j" index is no longer necessary and is eliminated. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index 6233d5e..12bec90 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -2512,7 +2512,6 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xT(opcode), &xt, env); \ \ for (i = 0; i < nels; i++) { \ - int j = 2*i + JOFFSET; \ xt.tfld = stp##_to_##ttp(xb.sfld, &env->fp_status); \ if (unlikely(stp##_is_signaling_nan(xb.sfld))) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ @@ -2528,10 +2527,10 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_CVT_FP_TO_FP(xscvdpsp, 1, float64, float32, f64[i], f32[j], 1) -VSX_CVT_FP_TO_FP(xscvspdp, 1, float32, float64, f32[j], f64[i], 1) -VSX_CVT_FP_TO_FP(xvcvdpsp, 2, float64, float32, f64[i], f32[j], 0) -VSX_CVT_FP_TO_FP(xvcvspdp, 2, float32, float64, f32[j], f64[i], 0) +VSX_CVT_FP_TO_FP(xscvdpsp, 1, float64, float32, VsrD(0), VsrW(0), 1) +VSX_CVT_FP_TO_FP(xscvspdp, 1, float32, float64, VsrW(0), VsrD(0), 1) +VSX_CVT_FP_TO_FP(xvcvdpsp, 2, float64, float32, VsrD(i), VsrW(2*i), 0) +VSX_CVT_FP_TO_FP(xvcvspdp, 2, float32, float64, VsrW(2*i), VsrD(i), 0) uint64_t helper_xscvdpspn(CPUPPCState *env, uint64_t xb) { -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 10/15] target-ppc: Correct VSX FP to Integer Conversion 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (8 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 09/15] target-ppc: Correct VSX FP to FP Conversions Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 11/15] target-ppc: Correct VSX Integer to FP Conversion Alexander Graf ` (5 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This patch corrects the VSX floating point to integer conversion instructions by using the endian correct accessors. The auxiliary "j" index used by the existing macros is now obsolete and is removed. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index 12bec90..abba703 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -2555,10 +2555,9 @@ uint64_t helper_xscvspdpn(CPUPPCState *env, uint64_t xb) * ttp - target type (int32, uint32, int64 or uint64) * sfld - source vsr_t field * tfld - target vsr_t field - * jdef - definition of the j index (i or 2*i) * rnan - resulting NaN */ -#define VSX_CVT_FP_TO_INT(op, nels, stp, ttp, sfld, tfld, jdef, rnan) \ +#define VSX_CVT_FP_TO_INT(op, nels, stp, ttp, sfld, tfld, rnan) \ void helper_##op(CPUPPCState *env, uint32_t opcode) \ { \ ppc_vsr_t xt, xb; \ @@ -2568,7 +2567,6 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xT(opcode), &xt, env); \ \ for (i = 0; i < nels; i++) { \ - int j = jdef; \ if (unlikely(stp##_is_any_nan(xb.sfld))) { \ if (stp##_is_signaling_nan(xb.sfld)) { \ fload_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 0); \ @@ -2588,27 +2586,23 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_CVT_FP_TO_INT(xscvdpsxds, 1, float64, int64, f64[j], u64[i], i, \ +VSX_CVT_FP_TO_INT(xscvdpsxds, 1, float64, int64, VsrD(0), VsrD(0), \ 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xscvdpsxws, 1, float64, int32, f64[i], u32[j], \ - 2*i + JOFFSET, 0x80000000U) -VSX_CVT_FP_TO_INT(xscvdpuxds, 1, float64, uint64, f64[j], u64[i], i, 0ULL) -VSX_CVT_FP_TO_INT(xscvdpuxws, 1, float64, uint32, f64[i], u32[j], \ - 2*i + JOFFSET, 0U) -VSX_CVT_FP_TO_INT(xvcvdpsxds, 2, float64, int64, f64[j], u64[i], i, \ +VSX_CVT_FP_TO_INT(xscvdpsxws, 1, float64, int32, VsrD(0), VsrW(1), \ + 0x80000000U) +VSX_CVT_FP_TO_INT(xscvdpuxds, 1, float64, uint64, VsrD(0), VsrD(0), 0ULL) +VSX_CVT_FP_TO_INT(xscvdpuxws, 1, float64, uint32, VsrD(0), VsrW(1), 0U) +VSX_CVT_FP_TO_INT(xvcvdpsxds, 2, float64, int64, VsrD(i), VsrD(i), \ 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xvcvdpsxws, 2, float64, int32, f64[i], u32[j], \ - 2*i + JOFFSET, 0x80000000U) -VSX_CVT_FP_TO_INT(xvcvdpuxds, 2, float64, uint64, f64[j], u64[i], i, 0ULL) -VSX_CVT_FP_TO_INT(xvcvdpuxws, 2, float64, uint32, f64[i], u32[j], \ - 2*i + JOFFSET, 0U) -VSX_CVT_FP_TO_INT(xvcvspsxds, 2, float32, int64, f32[j], u64[i], \ - 2*i + JOFFSET, 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xvcvspsxws, 4, float32, int32, f32[j], u32[j], i, \ +VSX_CVT_FP_TO_INT(xvcvdpsxws, 2, float64, int32, VsrD(i), VsrW(2*i), \ 0x80000000U) -VSX_CVT_FP_TO_INT(xvcvspuxds, 2, float32, uint64, f32[j], u64[i], \ - 2*i + JOFFSET, 0ULL) -VSX_CVT_FP_TO_INT(xvcvspuxws, 4, float32, uint32, f32[j], u32[i], i, 0U) +VSX_CVT_FP_TO_INT(xvcvdpuxds, 2, float64, uint64, VsrD(i), VsrD(i), 0ULL) +VSX_CVT_FP_TO_INT(xvcvdpuxws, 2, float64, uint32, VsrD(i), VsrW(2*i), 0U) +VSX_CVT_FP_TO_INT(xvcvspsxds, 2, float32, int64, VsrW(2*i), VsrD(i), \ + 0x8000000000000000ULL) +VSX_CVT_FP_TO_INT(xvcvspsxws, 4, float32, int32, VsrW(i), VsrW(i), 0x80000000U) +VSX_CVT_FP_TO_INT(xvcvspuxds, 2, float32, uint64, VsrW(2*i), VsrD(i), 0ULL) +VSX_CVT_FP_TO_INT(xvcvspuxws, 4, float32, uint32, VsrW(i), VsrW(i), 0U) /* VSX_CVT_INT_TO_FP - VSX integer to floating point conversion * op - instruction mnemonic -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 11/15] target-ppc: Correct VSX Integer to FP Conversion 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (9 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 10/15] target-ppc: Correct VSX FP to Integer Conversion Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 12/15] PPC: Clean up DECR implementation Alexander Graf ` (4 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc, Tom Musta From: Tom Musta <tommusta@gmail.com> This patch corrects the VSX integer to floating point conversion instructions by using the endian correct accessors. The auxiliary "j" index used by the existing macros is now obsolete and is removed. The JOFFSET preprocessor macro is also obsolete and removed. Signed-off-by: Tom Musta <tommusta@gmail.com> Tested-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/fpu_helper.c | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c index abba703..c6f484f 100644 --- a/target-ppc/fpu_helper.c +++ b/target-ppc/fpu_helper.c @@ -2487,12 +2487,6 @@ VSX_CMP(xvcmpeqsp, 4, float32, VsrW(i), eq, 0) VSX_CMP(xvcmpgesp, 4, float32, VsrW(i), le, 1) VSX_CMP(xvcmpgtsp, 4, float32, VsrW(i), lt, 1) -#if defined(HOST_WORDS_BIGENDIAN) -#define JOFFSET 0 -#else -#define JOFFSET 1 -#endif - /* VSX_CVT_FP_TO_FP - VSX floating point/floating point conversion * op - instruction mnemonic * nels - number of elements (1, 2 or 4) @@ -2614,7 +2608,7 @@ VSX_CVT_FP_TO_INT(xvcvspuxws, 4, float32, uint32, VsrW(i), VsrW(i), 0U) * jdef - definition of the j index (i or 2*i) * sfprf - set FPRF */ -#define VSX_CVT_INT_TO_FP(op, nels, stp, ttp, sfld, tfld, jdef, sfprf, r2sp) \ +#define VSX_CVT_INT_TO_FP(op, nels, stp, ttp, sfld, tfld, sfprf, r2sp) \ void helper_##op(CPUPPCState *env, uint32_t opcode) \ { \ ppc_vsr_t xt, xb; \ @@ -2624,7 +2618,6 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ getVSR(xT(opcode), &xt, env); \ \ for (i = 0; i < nels; i++) { \ - int j = jdef; \ xt.tfld = stp##_to_##ttp(xb.sfld, &env->fp_status); \ if (r2sp) { \ xt.tfld = helper_frsp(env, xt.tfld); \ @@ -2638,22 +2631,18 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ helper_float_check_status(env); \ } -VSX_CVT_INT_TO_FP(xscvsxddp, 1, int64, float64, u64[j], f64[i], i, 1, 0) -VSX_CVT_INT_TO_FP(xscvuxddp, 1, uint64, float64, u64[j], f64[i], i, 1, 0) -VSX_CVT_INT_TO_FP(xscvsxdsp, 1, int64, float64, u64[j], f64[i], i, 1, 1) -VSX_CVT_INT_TO_FP(xscvuxdsp, 1, uint64, float64, u64[j], f64[i], i, 1, 1) -VSX_CVT_INT_TO_FP(xvcvsxddp, 2, int64, float64, u64[j], f64[i], i, 0, 0) -VSX_CVT_INT_TO_FP(xvcvuxddp, 2, uint64, float64, u64[j], f64[i], i, 0, 0) -VSX_CVT_INT_TO_FP(xvcvsxwdp, 2, int32, float64, u32[j], f64[i], \ - 2*i + JOFFSET, 0, 0) -VSX_CVT_INT_TO_FP(xvcvuxwdp, 2, uint64, float64, u32[j], f64[i], \ - 2*i + JOFFSET, 0, 0) -VSX_CVT_INT_TO_FP(xvcvsxdsp, 2, int64, float32, u64[i], f32[j], \ - 2*i + JOFFSET, 0, 0) -VSX_CVT_INT_TO_FP(xvcvuxdsp, 2, uint64, float32, u64[i], f32[j], \ - 2*i + JOFFSET, 0, 0) -VSX_CVT_INT_TO_FP(xvcvsxwsp, 4, int32, float32, u32[j], f32[i], i, 0, 0) -VSX_CVT_INT_TO_FP(xvcvuxwsp, 4, uint32, float32, u32[j], f32[i], i, 0, 0) +VSX_CVT_INT_TO_FP(xscvsxddp, 1, int64, float64, VsrD(0), VsrD(0), 1, 0) +VSX_CVT_INT_TO_FP(xscvuxddp, 1, uint64, float64, VsrD(0), VsrD(0), 1, 0) +VSX_CVT_INT_TO_FP(xscvsxdsp, 1, int64, float64, VsrD(0), VsrD(0), 1, 1) +VSX_CVT_INT_TO_FP(xscvuxdsp, 1, uint64, float64, VsrD(0), VsrD(0), 1, 1) +VSX_CVT_INT_TO_FP(xvcvsxddp, 2, int64, float64, VsrD(i), VsrD(i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvuxddp, 2, uint64, float64, VsrD(i), VsrD(i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvsxwdp, 2, int32, float64, VsrW(2*i), VsrD(i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvuxwdp, 2, uint64, float64, VsrW(2*i), VsrD(i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvsxdsp, 2, int64, float32, VsrD(i), VsrW(2*i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvuxdsp, 2, uint64, float32, VsrD(i), VsrW(2*i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvsxwsp, 4, int32, float32, VsrW(i), VsrW(i), 0, 0) +VSX_CVT_INT_TO_FP(xvcvuxwsp, 4, uint32, float32, VsrW(i), VsrW(i), 0, 0) /* For "use current rounding mode", define a value that will not be one of * the existing rounding model enums. -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 12/15] PPC: Clean up DECR implementation 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (10 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 11/15] target-ppc: Correct VSX Integer to FP Conversion Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 13/15] PPC: Only enter MSR_POW when no interrupts pending Alexander Graf ` (3 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc There are 3 different variants of the decrementor for BookE and BookS. The BookE variant sets TSR[DIS] to 1 when the DEC value becomes 1 or 0. TSR[DIS] is then the indicator whether the decrementor interrupt line is asserted or not. The old BookS variant treats DEC as an edge interrupt that gets triggered when the DEC value's top bit turns 1 from 0. The new BookS variant maintains the assertion bit inside DEC itself. Whenever the DEC value becomes negative (top bit set) the DEC interrupt line is asserted. So far we implemented mostly the old BookS variant. Let's do them all properly. This fixes booting pseries ppc64 guest images in TCG mode for me. Signed-off-by: Alexander Graf <agraf@suse.de> --- hw/ppc/ppc.c | 92 +++++++++++++++++++++++++++++++++--------------- include/hw/ppc/ppc.h | 3 ++ target-ppc/cpu.h | 1 + target-ppc/excp_helper.c | 5 +-- 4 files changed, 71 insertions(+), 30 deletions(-) diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c index 9c2a132..71df471 100644 --- a/hw/ppc/ppc.c +++ b/hw/ppc/ppc.c @@ -620,6 +620,13 @@ static void cpu_ppc_tb_start (CPUPPCState *env) } } +bool ppc_decr_clear_on_delivery(CPUPPCState *env) +{ + ppc_tb_t *tb_env = env->tb_env; + int flags = PPC_DECR_UNDERFLOW_TRIGGERED | PPC_DECR_UNDERFLOW_LEVEL; + return ((tb_env->flags & flags) == PPC_DECR_UNDERFLOW_TRIGGERED); +} + static inline uint32_t _cpu_ppc_load_decr(CPUPPCState *env, uint64_t next) { ppc_tb_t *tb_env = env->tb_env; @@ -677,6 +684,11 @@ static inline void cpu_ppc_decr_excp(PowerPCCPU *cpu) ppc_set_irq(cpu, PPC_INTERRUPT_DECR, 1); } +static inline void cpu_ppc_decr_lower(PowerPCCPU *cpu) +{ + ppc_set_irq(cpu, PPC_INTERRUPT_DECR, 0); +} + static inline void cpu_ppc_hdecr_excp(PowerPCCPU *cpu) { /* Raise it */ @@ -684,11 +696,16 @@ static inline void cpu_ppc_hdecr_excp(PowerPCCPU *cpu) ppc_set_irq(cpu, PPC_INTERRUPT_HDECR, 1); } +static inline void cpu_ppc_hdecr_lower(PowerPCCPU *cpu) +{ + ppc_set_irq(cpu, PPC_INTERRUPT_HDECR, 0); +} + static void __cpu_ppc_store_decr(PowerPCCPU *cpu, uint64_t *nextp, QEMUTimer *timer, - void (*raise_excp)(PowerPCCPU *), - uint32_t decr, uint32_t value, - int is_excp) + void (*raise_excp)(void *), + void (*lower_excp)(PowerPCCPU *), + uint32_t decr, uint32_t value) { CPUPPCState *env = &cpu->env; ppc_tb_t *tb_env = env->tb_env; @@ -702,59 +719,74 @@ static void __cpu_ppc_store_decr(PowerPCCPU *cpu, uint64_t *nextp, return; } - now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); - next = now + muldiv64(value, get_ticks_per_sec(), tb_env->decr_freq); - if (is_excp) { - next += *nextp - now; + /* + * Going from 2 -> 1, 1 -> 0 or 0 -> -1 is the event to generate a DEC + * interrupt. + * + * If we get a really small DEC value, we can assume that by the time we + * handled it we should inject an interrupt already. + * + * On MSB level based DEC implementations the MSB always means the interrupt + * is pending, so raise it on those. + * + * On MSB edge based DEC implementations the MSB going from 0 -> 1 triggers + * an edge interrupt, so raise it here too. + */ + if ((value < 3) || + ((tb_env->flags & PPC_DECR_UNDERFLOW_LEVEL) && (value & 0x80000000)) || + ((tb_env->flags & PPC_DECR_UNDERFLOW_TRIGGERED) && (value & 0x80000000) + && !(decr & 0x80000000))) { + (*raise_excp)(cpu); + return; } - if (next == now) { - next++; + + /* On MSB level based systems a 0 for the MSB stops interrupt delivery */ + if (!(value & 0x80000000) && (tb_env->flags & PPC_DECR_UNDERFLOW_LEVEL)) { + (*lower_excp)(cpu); } + + /* Calculate the next timer event */ + now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); + next = now + muldiv64(value, get_ticks_per_sec(), tb_env->decr_freq); *nextp = next; + /* Adjust timer */ timer_mod(timer, next); - - /* If we set a negative value and the decrementer was positive, raise an - * exception. - */ - if ((tb_env->flags & PPC_DECR_UNDERFLOW_TRIGGERED) - && (value & 0x80000000) - && !(decr & 0x80000000)) { - (*raise_excp)(cpu); - } } static inline void _cpu_ppc_store_decr(PowerPCCPU *cpu, uint32_t decr, - uint32_t value, int is_excp) + uint32_t value) { ppc_tb_t *tb_env = cpu->env.tb_env; __cpu_ppc_store_decr(cpu, &tb_env->decr_next, tb_env->decr_timer, - &cpu_ppc_decr_excp, decr, value, is_excp); + tb_env->decr_timer->cb, &cpu_ppc_decr_lower, decr, + value); } void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value) { PowerPCCPU *cpu = ppc_env_get_cpu(env); - _cpu_ppc_store_decr(cpu, cpu_ppc_load_decr(env), value, 0); + _cpu_ppc_store_decr(cpu, cpu_ppc_load_decr(env), value); } static void cpu_ppc_decr_cb(void *opaque) { PowerPCCPU *cpu = opaque; - _cpu_ppc_store_decr(cpu, 0x00000000, 0xFFFFFFFF, 1); + cpu_ppc_decr_excp(cpu); } static inline void _cpu_ppc_store_hdecr(PowerPCCPU *cpu, uint32_t hdecr, - uint32_t value, int is_excp) + uint32_t value) { ppc_tb_t *tb_env = cpu->env.tb_env; if (tb_env->hdecr_timer != NULL) { __cpu_ppc_store_decr(cpu, &tb_env->hdecr_next, tb_env->hdecr_timer, - &cpu_ppc_hdecr_excp, hdecr, value, is_excp); + tb_env->hdecr_timer->cb, &cpu_ppc_hdecr_lower, + hdecr, value); } } @@ -762,14 +794,14 @@ void cpu_ppc_store_hdecr (CPUPPCState *env, uint32_t value) { PowerPCCPU *cpu = ppc_env_get_cpu(env); - _cpu_ppc_store_hdecr(cpu, cpu_ppc_load_hdecr(env), value, 0); + _cpu_ppc_store_hdecr(cpu, cpu_ppc_load_hdecr(env), value); } static void cpu_ppc_hdecr_cb(void *opaque) { PowerPCCPU *cpu = opaque; - _cpu_ppc_store_hdecr(cpu, 0x00000000, 0xFFFFFFFF, 1); + cpu_ppc_hdecr_excp(cpu); } static void cpu_ppc_store_purr(PowerPCCPU *cpu, uint64_t value) @@ -792,8 +824,8 @@ static void cpu_ppc_set_tb_clk (void *opaque, uint32_t freq) * if a decrementer exception is pending when it enables msr_ee at startup, * it's not ready to handle it... */ - _cpu_ppc_store_decr(cpu, 0xFFFFFFFF, 0xFFFFFFFF, 0); - _cpu_ppc_store_hdecr(cpu, 0xFFFFFFFF, 0xFFFFFFFF, 0); + _cpu_ppc_store_decr(cpu, 0xFFFFFFFF, 0xFFFFFFFF); + _cpu_ppc_store_hdecr(cpu, 0xFFFFFFFF, 0xFFFFFFFF); cpu_ppc_store_purr(cpu, 0x0000000000000000ULL); } @@ -806,6 +838,10 @@ clk_setup_cb cpu_ppc_tb_init (CPUPPCState *env, uint32_t freq) tb_env = g_malloc0(sizeof(ppc_tb_t)); env->tb_env = tb_env; tb_env->flags = PPC_DECR_UNDERFLOW_TRIGGERED; + if (env->insns_flags & PPC_SEGMENT_64B) { + /* All Book3S 64bit CPUs implement level based DEC logic */ + tb_env->flags |= PPC_DECR_UNDERFLOW_LEVEL; + } /* Create new timer */ tb_env->decr_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, &cpu_ppc_decr_cb, cpu); if (0) { diff --git a/include/hw/ppc/ppc.h b/include/hw/ppc/ppc.h index 835418a..d71bd07 100644 --- a/include/hw/ppc/ppc.h +++ b/include/hw/ppc/ppc.h @@ -44,6 +44,9 @@ struct ppc_tb_t { #define PPC_DECR_ZERO_TRIGGERED (1 << 3) /* Decr interrupt triggered when * the decrementer reaches zero. */ +#define PPC_DECR_UNDERFLOW_LEVEL (1 << 4) /* Decr interrupt active when + * the most significant bit is 1. + */ uint64_t cpu_ppc_get_tb(ppc_tb_t *tb_env, uint64_t vmclk, int64_t tb_offset); clk_setup_cb cpu_ppc_tb_init (CPUPPCState *env, uint32_t freq); diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h index 2719c08..d498340 100644 --- a/target-ppc/cpu.h +++ b/target-ppc/cpu.h @@ -1133,6 +1133,7 @@ uint64_t cpu_ppc_load_atbl (CPUPPCState *env); uint32_t cpu_ppc_load_atbu (CPUPPCState *env); void cpu_ppc_store_atbl (CPUPPCState *env, uint32_t value); void cpu_ppc_store_atbu (CPUPPCState *env, uint32_t value); +bool ppc_decr_clear_on_delivery(CPUPPCState *env); uint32_t cpu_ppc_load_decr (CPUPPCState *env); void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); uint32_t cpu_ppc_load_hdecr (CPUPPCState *env); diff --git a/target-ppc/excp_helper.c b/target-ppc/excp_helper.c index 19bc6b6..4fa297d 100644 --- a/target-ppc/excp_helper.c +++ b/target-ppc/excp_helper.c @@ -723,7 +723,6 @@ void ppc_hw_interrupt(CPUPPCState *env) if ((msr_ee != 0 || msr_hv == 0 || msr_pr != 0) && hdice != 0) { /* Hypervisor decrementer exception */ if (env->pending_interrupts & (1 << PPC_INTERRUPT_HDECR)) { - env->pending_interrupts &= ~(1 << PPC_INTERRUPT_HDECR); powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_HDECR); return; } @@ -767,7 +766,9 @@ void ppc_hw_interrupt(CPUPPCState *env) } /* Decrementer exception */ if (env->pending_interrupts & (1 << PPC_INTERRUPT_DECR)) { - env->pending_interrupts &= ~(1 << PPC_INTERRUPT_DECR); + if (ppc_decr_clear_on_delivery(env)) { + env->pending_interrupts &= ~(1 << PPC_INTERRUPT_DECR); + } powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_DECR); return; } -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 13/15] PPC: Only enter MSR_POW when no interrupts pending 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (11 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 12/15] PPC: Clean up DECR implementation Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 14/15] ppce500_spin: Initialize struct properly Alexander Graf ` (2 subsequent siblings) 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc We were entering the power saving state even when interrupts (like an external interrupt or a decrementer interrupt) were still in flight. In case we find a pending interrupt, don't enter power saving state. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Tom Musta <tmusta@gmail.com> --- target-ppc/helper_regs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-ppc/helper_regs.h b/target-ppc/helper_regs.h index f7ec9c2..271fddf 100644 --- a/target-ppc/helper_regs.h +++ b/target-ppc/helper_regs.h @@ -101,7 +101,7 @@ static inline int hreg_store_msr(CPUPPCState *env, target_ulong value, hreg_compute_hflags(env); #if !defined(CONFIG_USER_ONLY) if (unlikely(msr_pow == 1)) { - if ((*env->check_pow)(env)) { + if (!env->pending_interrupts && (*env->check_pow)(env)) { cs->halted = 1; excp = EXCP_HALTED; } -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 14/15] ppce500_spin: Initialize struct properly 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (12 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 13/15] PPC: Only enter MSR_POW when no interrupts pending Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 15/15] PPC: Add l1 cache sizes for 970 and above systems Alexander Graf 2014-04-08 10:50 ` [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Peter Maydell 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc The spinning struct is in guest endianness, so we need to initialize its variables in guest endianness too. This fixes booting e500 guests with SMP on x86 for me. Signed-off-by: Alexander Graf <agraf@suse.de> --- hw/ppc/ppce500_spin.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c index f9fdc8c..d49f2b8 100644 --- a/hw/ppc/ppce500_spin.c +++ b/hw/ppc/ppce500_spin.c @@ -65,9 +65,9 @@ static void spin_reset(void *opaque) for (i = 0; i < MAX_CPUS; i++) { SpinInfo *info = &s->spin[i]; - info->pir = i; - info->r3 = i; - info->addr = 1; + stl_p(&info->pir, i); + stq_p(&info->r3, i); + stq_p(&info->addr, 1); } } -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [Qemu-devel] [PULL 2.0 15/15] PPC: Add l1 cache sizes for 970 and above systems 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (13 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 14/15] ppce500_spin: Initialize struct properly Alexander Graf @ 2014-04-08 9:31 ` Alexander Graf 2014-04-08 10:50 ` [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Peter Maydell 15 siblings, 0 replies; 17+ messages in thread From: Alexander Graf @ 2014-04-08 9:31 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, qemu-ppc Book3s_64 guests expect the L1 cache size in device tree, so let's give them proper values for all CPU types we support. This fixes a "not compliant" warning with sles11 guests on -M pseries for me. Signed-off-by: Alexander Graf <agraf@suse.de> --- target-ppc/translate_init.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index d07e186..4d94015 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -6699,6 +6699,8 @@ POWERPC_FAMILY(970)(ObjectClass *oc, void *data) pcc->flags = POWERPC_FLAG_VRE | POWERPC_FLAG_SE | POWERPC_FLAG_BE | POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK; + pcc->l1_dcache_size = 0x8000; + pcc->l1_icache_size = 0x10000; } static int check_pow_970FX (CPUPPCState *env) @@ -6791,6 +6793,8 @@ POWERPC_FAMILY(970FX)(ObjectClass *oc, void *data) pcc->flags = POWERPC_FLAG_VRE | POWERPC_FLAG_SE | POWERPC_FLAG_BE | POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK; + pcc->l1_dcache_size = 0x8000; + pcc->l1_icache_size = 0x10000; } static int check_pow_970MP (CPUPPCState *env) @@ -6877,6 +6881,8 @@ POWERPC_FAMILY(970MP)(ObjectClass *oc, void *data) pcc->flags = POWERPC_FLAG_VRE | POWERPC_FLAG_SE | POWERPC_FLAG_BE | POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK; + pcc->l1_dcache_size = 0x8000; + pcc->l1_icache_size = 0x10000; } static void init_proc_power5plus(CPUPPCState *env) @@ -6967,6 +6973,8 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data) pcc->flags = POWERPC_FLAG_VRE | POWERPC_FLAG_SE | POWERPC_FLAG_BE | POWERPC_FLAG_PMM | POWERPC_FLAG_BUS_CLK; + pcc->l1_dcache_size = 0x8000; + pcc->l1_icache_size = 0x10000; } static void init_proc_POWER7 (CPUPPCState *env) -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf ` (14 preceding siblings ...) 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 15/15] PPC: Add l1 cache sizes for 970 and above systems Alexander Graf @ 2014-04-08 10:50 ` Peter Maydell 15 siblings, 0 replies; 17+ messages in thread From: Peter Maydell @ 2014-04-08 10:50 UTC (permalink / raw) To: Alexander Graf; +Cc: qemu-ppc@nongnu.org, QEMU Developers On 8 April 2014 10:31, Alexander Graf <agraf@suse.de> wrote: > Hi Peter, > > This is my last 2.0 queue for ppc. Please pull. Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-04-08 10:51 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-04-08 9:31 [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 01/15] PPC: E500: Set PIR default reset value rather than SPR value Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 02/15] pseries: Update SLOF firmware image to qemu-slof-20140404 Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 03/15] softfloat: Introduce float32_to_uint64_round_to_zero Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 04/15] target-ppc: Bug: VSX Convert to Integer Should Truncate Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 05/15] target-ppc: Define Endian-Correct Accessors for VSR Field Access Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 06/15] target-ppc: Correct LE Host Inversion of Lower VSRs Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 07/15] target-ppc: Correct Simple VSR LE Host Inversions Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 08/15] target-ppc: Correct VSX Scalar Compares Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 09/15] target-ppc: Correct VSX FP to FP Conversions Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 10/15] target-ppc: Correct VSX FP to Integer Conversion Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 11/15] target-ppc: Correct VSX Integer to FP Conversion Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 12/15] PPC: Clean up DECR implementation Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 13/15] PPC: Only enter MSR_POW when no interrupts pending Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 14/15] ppce500_spin: Initialize struct properly Alexander Graf 2014-04-08 9:31 ` [Qemu-devel] [PULL 2.0 15/15] PPC: Add l1 cache sizes for 970 and above systems Alexander Graf 2014-04-08 10:50 ` [Qemu-devel] [PULL 2.0 00/15] ppc patch queue 2014-04-08 for 2.0 Peter Maydell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).