diff options
-rw-r--r-- | fpu/softfloat.c | 19 | ||||
-rw-r--r-- | tests/Makefile.include | 2 | ||||
-rw-r--r-- | tests/acceptance/boot_linux_console.py | 11 | ||||
-rw-r--r-- | tests/qemu-iotests/group | 2 |
4 files changed, 27 insertions, 7 deletions
diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 0638c9f4e0..301ce3b537 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -1920,13 +1920,30 @@ float16 float32_to_float16(float32 a, bool ieee, float_status *s) return float16a_round_pack_canonical(pr, s, fmt16); } -float64 float32_to_float64(float32 a, float_status *s) +static float64 QEMU_SOFTFLOAT_ATTR +soft_float32_to_float64(float32 a, float_status *s) { FloatParts p = float32_unpack_canonical(a, s); FloatParts pr = float_to_float(p, &float64_params, s); return float64_round_pack_canonical(pr, s); } +float64 float32_to_float64(float32 a, float_status *s) +{ + if (likely(float32_is_normal(a))) { + /* Widening conversion can never produce inexact results. */ + union_float32 uf; + union_float64 ud; + uf.s = a; + ud.h = uf.h; + return ud.s; + } else if (float32_is_zero(a)) { + return float64_set_sign(float64_zero, float32_is_neg(a)); + } else { + return soft_float32_to_float64(a, s); + } +} + float16 float64_to_float16(float64 a, bool ieee, float_status *s) { const FloatFmt *fmt16 = ieee ? &float16_params : &float16_params_ahp; diff --git a/tests/Makefile.include b/tests/Makefile.include index 728d802dbd..56f73b46e2 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -140,7 +140,7 @@ check-unit-y += tests/test-base64$(EXESUF) check-unit-$(call land,$(CONFIG_BLOCK),$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT))) += tests/test-crypto-pbkdf$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-crypto-ivgen$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-crypto-afsplit$(EXESUF) -check-unit-$(if $(CONFIG_BLOCK),$(CONFIG_QEMU_PRIVATE_XTS)) += tests/test-crypto-xts$(EXESUF) +check-unit-$(call land,$(CONFIG_BLOCK),$(CONFIG_QEMU_PRIVATE_XTS)) += tests/test-crypto-xts$(EXESUF) check-unit-$(CONFIG_BLOCK) += tests/test-crypto-block$(EXESUF) check-unit-y += tests/test-logging$(EXESUF) check-unit-$(call land,$(CONFIG_BLOCK),$(CONFIG_REPLICATION)) += tests/test-replication$(EXESUF) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index 4e9ac0ecc3..7e41cebd47 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -480,11 +480,14 @@ class BootLinuxConsole(Test): :avocado: tags=machine:q800 """ deb_url = ('http://ftp.ports.debian.org/debian-ports/pool-m68k/main' - '/l/linux/kernel-image-5.2.0-2-m68k-di_5.2.9-2_m68k.udeb') - deb_hash = '0797e05129595f22f3c0142db5e199769a723bf9' - deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) + '/l/linux/kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb') + deb_hash = '044954bb9be4160a3ce81f8bc1b5e856b75cccd1' + try: + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) + except OSError as exp: + self.cancel(exp) kernel_path = self.extract_from_deb(deb_path, - '/boot/vmlinux-5.2.0-2-m68k') + '/boot/vmlinux-5.3.0-1-m68k') self.vm.set_machine('q800') self.vm.set_console() diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index 28871604cd..095ed1b880 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -151,7 +151,7 @@ 127 rw backing quick 128 rw quick 129 rw quick -130 rw auto quick +130 rw quick 131 rw quick 132 rw quick 133 auto quick |