qemu/target
Luis Pires a3d67f3e5d target/ppc: fix setting of CR flags in bcdcfsq
According to the ISA, CR should be set based on the source value, and
not on the packed decimal result.
The way this was implemented would cause GT, LT and EQ to be set
incorrectly when the source value was too large and the 31 least
significant digits of the packed decimal result ended up being all zero.
This would happen for source values of +/-10^31, +/-10^32, etc.

The new implementation fixes this and also skips the result calculation
altogether in case of src overflow.

Signed-off-by: Luis Pires <luis.pires@eldorado.org.br>
Message-Id: <20210823150235.35759-1-luis.pires@eldorado.org.br>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-09-29 19:37:39 +10:00
..
alpha hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
arm hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
avr include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
cris include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
hexagon include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
hppa hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
i386 include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
m68k include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
microblaze hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
mips hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
nios2 hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
openrisc include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
ppc target/ppc: fix setting of CR flags in bcdcfsq 2021-09-29 19:37:39 +10:00
riscv hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
rx include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
s390x hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
sh4 hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
sparc include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
tricore include/exec: Move cpu_signal_handler declaration 2021-09-21 19:36:44 -07:00
xtensa hw/core: Make do_unaligned_access noreturn 2021-09-21 19:36:44 -07:00
Kconfig meson: Introduce target-specific Kconfig 2021-07-09 18:21:34 +02:00
meson.build Drop the deprecated unicore32 target 2021-05-12 18:20:52 +02:00