From 9c5b6f06a20cfdead61589a18e5f7a943fc2cdbc Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Sun, 28 Feb 2021 05:08:41 -0500 Subject: [PATCH] target/arm: Use macros instead of open-coding fp16 conversion helpers Now the VFP_CONV_FIX macros can handle fp16's distinction between the width of the operation and the width of the type used to pass operands, use the macros rather than the open-coded functions. This creates an extra six helper functions, all of which we are going to need for the AArch32 VFP fp16 instructions. Backports commit 414ba270c4fb758d987adf37ae9bfe531715c604 --- qemu/aarch64.h | 6 +++ qemu/aarch64eb.h | 6 +++ qemu/arm.h | 6 +++ qemu/armeb.h | 6 +++ qemu/header_gen.py | 6 +++ qemu/m68k.h | 6 +++ qemu/mips.h | 6 +++ qemu/mips64.h | 6 +++ qemu/mips64el.h | 6 +++ qemu/mipsel.h | 6 +++ qemu/powerpc.h | 6 +++ qemu/riscv32.h | 6 +++ qemu/riscv64.h | 6 +++ qemu/sparc.h | 6 +++ qemu/sparc64.h | 6 +++ qemu/target/arm/helper.h | 6 +++ qemu/target/arm/vfp_helper.c | 86 +++--------------------------------- qemu/x86_64.h | 6 +++ 18 files changed, 108 insertions(+), 80 deletions(-) diff --git a/qemu/aarch64.h b/qemu/aarch64.h index f23c5921..94e976bb 100644 --- a/qemu/aarch64.h +++ b/qemu/aarch64.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_aarch64 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_aarch64 #define helper_vfp_shtod helper_vfp_shtod_aarch64 +#define helper_vfp_shtoh helper_vfp_shtoh_aarch64 #define helper_vfp_shtos helper_vfp_shtos_aarch64 #define helper_vfp_sitod helper_vfp_sitod_aarch64 #define helper_vfp_sitoh helper_vfp_sitoh_aarch64 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_aarch64 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_aarch64 #define helper_vfp_toshh helper_vfp_toshh_aarch64 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_aarch64 #define helper_vfp_toshs helper_vfp_toshs_aarch64 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_aarch64 #define helper_vfp_tosid helper_vfp_tosid_aarch64 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_aarch64 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_aarch64 #define helper_vfp_toslh helper_vfp_toslh_aarch64 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_aarch64 #define helper_vfp_tosls helper_vfp_tosls_aarch64 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_aarch64 #define helper_vfp_tosqd helper_vfp_tosqd_aarch64 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_aarch64 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_aarch64 #define helper_vfp_touhh helper_vfp_touhh_aarch64 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_aarch64 #define helper_vfp_touhs helper_vfp_touhs_aarch64 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_aarch64 #define helper_vfp_touid helper_vfp_touid_aarch64 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_aarch64 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_aarch64 #define helper_vfp_toulh helper_vfp_toulh_aarch64 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_aarch64 #define helper_vfp_touls helper_vfp_touls_aarch64 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_aarch64 #define helper_vfp_touqd helper_vfp_touqd_aarch64 #define helper_vfp_touqh helper_vfp_touqh_aarch64 #define helper_vfp_touqs helper_vfp_touqs_aarch64 #define helper_vfp_uhtod helper_vfp_uhtod_aarch64 +#define helper_vfp_uhtoh helper_vfp_uhtoh_aarch64 #define helper_vfp_uhtos helper_vfp_uhtos_aarch64 #define helper_vfp_uitod helper_vfp_uitod_aarch64 #define helper_vfp_uitoh helper_vfp_uitoh_aarch64 diff --git a/qemu/aarch64eb.h b/qemu/aarch64eb.h index 361abce5..7ba3a9da 100644 --- a/qemu/aarch64eb.h +++ b/qemu/aarch64eb.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_aarch64eb #define helper_vfp_set_fpscr helper_vfp_set_fpscr_aarch64eb #define helper_vfp_shtod helper_vfp_shtod_aarch64eb +#define helper_vfp_shtoh helper_vfp_shtoh_aarch64eb #define helper_vfp_shtos helper_vfp_shtos_aarch64eb #define helper_vfp_sitod helper_vfp_sitod_aarch64eb #define helper_vfp_sitoh helper_vfp_sitoh_aarch64eb @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_aarch64eb #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_aarch64eb #define helper_vfp_toshh helper_vfp_toshh_aarch64eb +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_aarch64eb #define helper_vfp_toshs helper_vfp_toshs_aarch64eb #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_aarch64eb #define helper_vfp_tosid helper_vfp_tosid_aarch64eb @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_aarch64eb #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_aarch64eb #define helper_vfp_toslh helper_vfp_toslh_aarch64eb +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_aarch64eb #define helper_vfp_tosls helper_vfp_tosls_aarch64eb #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_aarch64eb #define helper_vfp_tosqd helper_vfp_tosqd_aarch64eb @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_aarch64eb #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_aarch64eb #define helper_vfp_touhh helper_vfp_touhh_aarch64eb +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_aarch64eb #define helper_vfp_touhs helper_vfp_touhs_aarch64eb #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_aarch64eb #define helper_vfp_touid helper_vfp_touid_aarch64eb @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_aarch64eb #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_aarch64eb #define helper_vfp_toulh helper_vfp_toulh_aarch64eb +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_aarch64eb #define helper_vfp_touls helper_vfp_touls_aarch64eb #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_aarch64eb #define helper_vfp_touqd helper_vfp_touqd_aarch64eb #define helper_vfp_touqh helper_vfp_touqh_aarch64eb #define helper_vfp_touqs helper_vfp_touqs_aarch64eb #define helper_vfp_uhtod helper_vfp_uhtod_aarch64eb +#define helper_vfp_uhtoh helper_vfp_uhtoh_aarch64eb #define helper_vfp_uhtos helper_vfp_uhtos_aarch64eb #define helper_vfp_uitod helper_vfp_uitod_aarch64eb #define helper_vfp_uitoh helper_vfp_uitoh_aarch64eb diff --git a/qemu/arm.h b/qemu/arm.h index 8f2a936d..657cd789 100644 --- a/qemu/arm.h +++ b/qemu/arm.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_arm #define helper_vfp_set_fpscr helper_vfp_set_fpscr_arm #define helper_vfp_shtod helper_vfp_shtod_arm +#define helper_vfp_shtoh helper_vfp_shtoh_arm #define helper_vfp_shtos helper_vfp_shtos_arm #define helper_vfp_sitod helper_vfp_sitod_arm #define helper_vfp_sitoh helper_vfp_sitoh_arm @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_arm #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_arm #define helper_vfp_toshh helper_vfp_toshh_arm +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_arm #define helper_vfp_toshs helper_vfp_toshs_arm #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_arm #define helper_vfp_tosid helper_vfp_tosid_arm @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_arm #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_arm #define helper_vfp_toslh helper_vfp_toslh_arm +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_arm #define helper_vfp_tosls helper_vfp_tosls_arm #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_arm #define helper_vfp_tosqd helper_vfp_tosqd_arm @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_arm #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_arm #define helper_vfp_touhh helper_vfp_touhh_arm +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_arm #define helper_vfp_touhs helper_vfp_touhs_arm #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_arm #define helper_vfp_touid helper_vfp_touid_arm @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_arm #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_arm #define helper_vfp_toulh helper_vfp_toulh_arm +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_arm #define helper_vfp_touls helper_vfp_touls_arm #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_arm #define helper_vfp_touqd helper_vfp_touqd_arm #define helper_vfp_touqh helper_vfp_touqh_arm #define helper_vfp_touqs helper_vfp_touqs_arm #define helper_vfp_uhtod helper_vfp_uhtod_arm +#define helper_vfp_uhtoh helper_vfp_uhtoh_arm #define helper_vfp_uhtos helper_vfp_uhtos_arm #define helper_vfp_uitod helper_vfp_uitod_arm #define helper_vfp_uitoh helper_vfp_uitoh_arm diff --git a/qemu/armeb.h b/qemu/armeb.h index 52818349..7f8ccd1f 100644 --- a/qemu/armeb.h +++ b/qemu/armeb.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_armeb #define helper_vfp_set_fpscr helper_vfp_set_fpscr_armeb #define helper_vfp_shtod helper_vfp_shtod_armeb +#define helper_vfp_shtoh helper_vfp_shtoh_armeb #define helper_vfp_shtos helper_vfp_shtos_armeb #define helper_vfp_sitod helper_vfp_sitod_armeb #define helper_vfp_sitoh helper_vfp_sitoh_armeb @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_armeb #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_armeb #define helper_vfp_toshh helper_vfp_toshh_armeb +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_armeb #define helper_vfp_toshs helper_vfp_toshs_armeb #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_armeb #define helper_vfp_tosid helper_vfp_tosid_armeb @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_armeb #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_armeb #define helper_vfp_toslh helper_vfp_toslh_armeb +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_armeb #define helper_vfp_tosls helper_vfp_tosls_armeb #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_armeb #define helper_vfp_tosqd helper_vfp_tosqd_armeb @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_armeb #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_armeb #define helper_vfp_touhh helper_vfp_touhh_armeb +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_armeb #define helper_vfp_touhs helper_vfp_touhs_armeb #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_armeb #define helper_vfp_touid helper_vfp_touid_armeb @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_armeb #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_armeb #define helper_vfp_toulh helper_vfp_toulh_armeb +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_armeb #define helper_vfp_touls helper_vfp_touls_armeb #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_armeb #define helper_vfp_touqd helper_vfp_touqd_armeb #define helper_vfp_touqh helper_vfp_touqh_armeb #define helper_vfp_touqs helper_vfp_touqs_armeb #define helper_vfp_uhtod helper_vfp_uhtod_armeb +#define helper_vfp_uhtoh helper_vfp_uhtoh_armeb #define helper_vfp_uhtos helper_vfp_uhtos_armeb #define helper_vfp_uitod helper_vfp_uitod_armeb #define helper_vfp_uitoh helper_vfp_uitoh_armeb diff --git a/qemu/header_gen.py b/qemu/header_gen.py index 6fef404a..7c21a517 100644 --- a/qemu/header_gen.py +++ b/qemu/header_gen.py @@ -1938,6 +1938,7 @@ symbols = ( 'helper_vfp_negs', 'helper_vfp_set_fpscr', 'helper_vfp_shtod', + 'helper_vfp_shtoh', 'helper_vfp_shtos', 'helper_vfp_sitod', 'helper_vfp_sitoh', @@ -1957,6 +1958,7 @@ symbols = ( 'helper_vfp_toshd', 'helper_vfp_toshd_round_to_zero', 'helper_vfp_toshh', + 'helper_vfp_toshh_round_to_zero', 'helper_vfp_toshs', 'helper_vfp_toshs_round_to_zero', 'helper_vfp_tosid', @@ -1968,6 +1970,7 @@ symbols = ( 'helper_vfp_tosld', 'helper_vfp_tosld_round_to_zero', 'helper_vfp_toslh', + 'helper_vfp_toslh_round_to_zero', 'helper_vfp_tosls', 'helper_vfp_tosls_round_to_zero', 'helper_vfp_tosqd', @@ -1976,6 +1979,7 @@ symbols = ( 'helper_vfp_touhd', 'helper_vfp_touhd_round_to_zero', 'helper_vfp_touhh', + 'helper_vfp_touhh_round_to_zero', 'helper_vfp_touhs', 'helper_vfp_touhs_round_to_zero', 'helper_vfp_touid', @@ -1987,12 +1991,14 @@ symbols = ( 'helper_vfp_tould', 'helper_vfp_tould_round_to_zero', 'helper_vfp_toulh', + 'helper_vfp_toulh_round_to_zero', 'helper_vfp_touls', 'helper_vfp_touls_round_to_zero', 'helper_vfp_touqd', 'helper_vfp_touqh', 'helper_vfp_touqs', 'helper_vfp_uhtod', + 'helper_vfp_uhtoh', 'helper_vfp_uhtos', 'helper_vfp_uitod', 'helper_vfp_uitoh', diff --git a/qemu/m68k.h b/qemu/m68k.h index 668bee7e..36bd261f 100644 --- a/qemu/m68k.h +++ b/qemu/m68k.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_m68k #define helper_vfp_set_fpscr helper_vfp_set_fpscr_m68k #define helper_vfp_shtod helper_vfp_shtod_m68k +#define helper_vfp_shtoh helper_vfp_shtoh_m68k #define helper_vfp_shtos helper_vfp_shtos_m68k #define helper_vfp_sitod helper_vfp_sitod_m68k #define helper_vfp_sitoh helper_vfp_sitoh_m68k @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_m68k #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_m68k #define helper_vfp_toshh helper_vfp_toshh_m68k +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_m68k #define helper_vfp_toshs helper_vfp_toshs_m68k #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_m68k #define helper_vfp_tosid helper_vfp_tosid_m68k @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_m68k #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_m68k #define helper_vfp_toslh helper_vfp_toslh_m68k +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_m68k #define helper_vfp_tosls helper_vfp_tosls_m68k #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_m68k #define helper_vfp_tosqd helper_vfp_tosqd_m68k @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_m68k #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_m68k #define helper_vfp_touhh helper_vfp_touhh_m68k +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_m68k #define helper_vfp_touhs helper_vfp_touhs_m68k #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_m68k #define helper_vfp_touid helper_vfp_touid_m68k @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_m68k #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_m68k #define helper_vfp_toulh helper_vfp_toulh_m68k +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_m68k #define helper_vfp_touls helper_vfp_touls_m68k #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_m68k #define helper_vfp_touqd helper_vfp_touqd_m68k #define helper_vfp_touqh helper_vfp_touqh_m68k #define helper_vfp_touqs helper_vfp_touqs_m68k #define helper_vfp_uhtod helper_vfp_uhtod_m68k +#define helper_vfp_uhtoh helper_vfp_uhtoh_m68k #define helper_vfp_uhtos helper_vfp_uhtos_m68k #define helper_vfp_uitod helper_vfp_uitod_m68k #define helper_vfp_uitoh helper_vfp_uitoh_m68k diff --git a/qemu/mips.h b/qemu/mips.h index 7fc586a9..9685b1f8 100644 --- a/qemu/mips.h +++ b/qemu/mips.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_mips #define helper_vfp_set_fpscr helper_vfp_set_fpscr_mips #define helper_vfp_shtod helper_vfp_shtod_mips +#define helper_vfp_shtoh helper_vfp_shtoh_mips #define helper_vfp_shtos helper_vfp_shtos_mips #define helper_vfp_sitod helper_vfp_sitod_mips #define helper_vfp_sitoh helper_vfp_sitoh_mips @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_mips #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_mips #define helper_vfp_toshh helper_vfp_toshh_mips +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_mips #define helper_vfp_toshs helper_vfp_toshs_mips #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_mips #define helper_vfp_tosid helper_vfp_tosid_mips @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_mips #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_mips #define helper_vfp_toslh helper_vfp_toslh_mips +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_mips #define helper_vfp_tosls helper_vfp_tosls_mips #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_mips #define helper_vfp_tosqd helper_vfp_tosqd_mips @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_mips #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_mips #define helper_vfp_touhh helper_vfp_touhh_mips +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_mips #define helper_vfp_touhs helper_vfp_touhs_mips #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_mips #define helper_vfp_touid helper_vfp_touid_mips @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_mips #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_mips #define helper_vfp_toulh helper_vfp_toulh_mips +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_mips #define helper_vfp_touls helper_vfp_touls_mips #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_mips #define helper_vfp_touqd helper_vfp_touqd_mips #define helper_vfp_touqh helper_vfp_touqh_mips #define helper_vfp_touqs helper_vfp_touqs_mips #define helper_vfp_uhtod helper_vfp_uhtod_mips +#define helper_vfp_uhtoh helper_vfp_uhtoh_mips #define helper_vfp_uhtos helper_vfp_uhtos_mips #define helper_vfp_uitod helper_vfp_uitod_mips #define helper_vfp_uitoh helper_vfp_uitoh_mips diff --git a/qemu/mips64.h b/qemu/mips64.h index bcbbdc4a..12cb768f 100644 --- a/qemu/mips64.h +++ b/qemu/mips64.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_mips64 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_mips64 #define helper_vfp_shtod helper_vfp_shtod_mips64 +#define helper_vfp_shtoh helper_vfp_shtoh_mips64 #define helper_vfp_shtos helper_vfp_shtos_mips64 #define helper_vfp_sitod helper_vfp_sitod_mips64 #define helper_vfp_sitoh helper_vfp_sitoh_mips64 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_mips64 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_mips64 #define helper_vfp_toshh helper_vfp_toshh_mips64 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_mips64 #define helper_vfp_toshs helper_vfp_toshs_mips64 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_mips64 #define helper_vfp_tosid helper_vfp_tosid_mips64 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_mips64 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_mips64 #define helper_vfp_toslh helper_vfp_toslh_mips64 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_mips64 #define helper_vfp_tosls helper_vfp_tosls_mips64 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_mips64 #define helper_vfp_tosqd helper_vfp_tosqd_mips64 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_mips64 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_mips64 #define helper_vfp_touhh helper_vfp_touhh_mips64 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_mips64 #define helper_vfp_touhs helper_vfp_touhs_mips64 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_mips64 #define helper_vfp_touid helper_vfp_touid_mips64 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_mips64 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_mips64 #define helper_vfp_toulh helper_vfp_toulh_mips64 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_mips64 #define helper_vfp_touls helper_vfp_touls_mips64 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_mips64 #define helper_vfp_touqd helper_vfp_touqd_mips64 #define helper_vfp_touqh helper_vfp_touqh_mips64 #define helper_vfp_touqs helper_vfp_touqs_mips64 #define helper_vfp_uhtod helper_vfp_uhtod_mips64 +#define helper_vfp_uhtoh helper_vfp_uhtoh_mips64 #define helper_vfp_uhtos helper_vfp_uhtos_mips64 #define helper_vfp_uitod helper_vfp_uitod_mips64 #define helper_vfp_uitoh helper_vfp_uitoh_mips64 diff --git a/qemu/mips64el.h b/qemu/mips64el.h index 98f5d38f..d92e550a 100644 --- a/qemu/mips64el.h +++ b/qemu/mips64el.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_mips64el #define helper_vfp_set_fpscr helper_vfp_set_fpscr_mips64el #define helper_vfp_shtod helper_vfp_shtod_mips64el +#define helper_vfp_shtoh helper_vfp_shtoh_mips64el #define helper_vfp_shtos helper_vfp_shtos_mips64el #define helper_vfp_sitod helper_vfp_sitod_mips64el #define helper_vfp_sitoh helper_vfp_sitoh_mips64el @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_mips64el #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_mips64el #define helper_vfp_toshh helper_vfp_toshh_mips64el +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_mips64el #define helper_vfp_toshs helper_vfp_toshs_mips64el #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_mips64el #define helper_vfp_tosid helper_vfp_tosid_mips64el @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_mips64el #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_mips64el #define helper_vfp_toslh helper_vfp_toslh_mips64el +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_mips64el #define helper_vfp_tosls helper_vfp_tosls_mips64el #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_mips64el #define helper_vfp_tosqd helper_vfp_tosqd_mips64el @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_mips64el #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_mips64el #define helper_vfp_touhh helper_vfp_touhh_mips64el +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_mips64el #define helper_vfp_touhs helper_vfp_touhs_mips64el #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_mips64el #define helper_vfp_touid helper_vfp_touid_mips64el @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_mips64el #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_mips64el #define helper_vfp_toulh helper_vfp_toulh_mips64el +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_mips64el #define helper_vfp_touls helper_vfp_touls_mips64el #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_mips64el #define helper_vfp_touqd helper_vfp_touqd_mips64el #define helper_vfp_touqh helper_vfp_touqh_mips64el #define helper_vfp_touqs helper_vfp_touqs_mips64el #define helper_vfp_uhtod helper_vfp_uhtod_mips64el +#define helper_vfp_uhtoh helper_vfp_uhtoh_mips64el #define helper_vfp_uhtos helper_vfp_uhtos_mips64el #define helper_vfp_uitod helper_vfp_uitod_mips64el #define helper_vfp_uitoh helper_vfp_uitoh_mips64el diff --git a/qemu/mipsel.h b/qemu/mipsel.h index 3387fac2..f10cbb85 100644 --- a/qemu/mipsel.h +++ b/qemu/mipsel.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_mipsel #define helper_vfp_set_fpscr helper_vfp_set_fpscr_mipsel #define helper_vfp_shtod helper_vfp_shtod_mipsel +#define helper_vfp_shtoh helper_vfp_shtoh_mipsel #define helper_vfp_shtos helper_vfp_shtos_mipsel #define helper_vfp_sitod helper_vfp_sitod_mipsel #define helper_vfp_sitoh helper_vfp_sitoh_mipsel @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_mipsel #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_mipsel #define helper_vfp_toshh helper_vfp_toshh_mipsel +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_mipsel #define helper_vfp_toshs helper_vfp_toshs_mipsel #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_mipsel #define helper_vfp_tosid helper_vfp_tosid_mipsel @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_mipsel #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_mipsel #define helper_vfp_toslh helper_vfp_toslh_mipsel +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_mipsel #define helper_vfp_tosls helper_vfp_tosls_mipsel #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_mipsel #define helper_vfp_tosqd helper_vfp_tosqd_mipsel @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_mipsel #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_mipsel #define helper_vfp_touhh helper_vfp_touhh_mipsel +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_mipsel #define helper_vfp_touhs helper_vfp_touhs_mipsel #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_mipsel #define helper_vfp_touid helper_vfp_touid_mipsel @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_mipsel #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_mipsel #define helper_vfp_toulh helper_vfp_toulh_mipsel +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_mipsel #define helper_vfp_touls helper_vfp_touls_mipsel #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_mipsel #define helper_vfp_touqd helper_vfp_touqd_mipsel #define helper_vfp_touqh helper_vfp_touqh_mipsel #define helper_vfp_touqs helper_vfp_touqs_mipsel #define helper_vfp_uhtod helper_vfp_uhtod_mipsel +#define helper_vfp_uhtoh helper_vfp_uhtoh_mipsel #define helper_vfp_uhtos helper_vfp_uhtos_mipsel #define helper_vfp_uitod helper_vfp_uitod_mipsel #define helper_vfp_uitoh helper_vfp_uitoh_mipsel diff --git a/qemu/powerpc.h b/qemu/powerpc.h index 26e26568..48e0c050 100644 --- a/qemu/powerpc.h +++ b/qemu/powerpc.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_powerpc #define helper_vfp_set_fpscr helper_vfp_set_fpscr_powerpc #define helper_vfp_shtod helper_vfp_shtod_powerpc +#define helper_vfp_shtoh helper_vfp_shtoh_powerpc #define helper_vfp_shtos helper_vfp_shtos_powerpc #define helper_vfp_sitod helper_vfp_sitod_powerpc #define helper_vfp_sitoh helper_vfp_sitoh_powerpc @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_powerpc #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_powerpc #define helper_vfp_toshh helper_vfp_toshh_powerpc +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_powerpc #define helper_vfp_toshs helper_vfp_toshs_powerpc #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_powerpc #define helper_vfp_tosid helper_vfp_tosid_powerpc @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_powerpc #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_powerpc #define helper_vfp_toslh helper_vfp_toslh_powerpc +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_powerpc #define helper_vfp_tosls helper_vfp_tosls_powerpc #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_powerpc #define helper_vfp_tosqd helper_vfp_tosqd_powerpc @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_powerpc #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_powerpc #define helper_vfp_touhh helper_vfp_touhh_powerpc +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_powerpc #define helper_vfp_touhs helper_vfp_touhs_powerpc #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_powerpc #define helper_vfp_touid helper_vfp_touid_powerpc @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_powerpc #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_powerpc #define helper_vfp_toulh helper_vfp_toulh_powerpc +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_powerpc #define helper_vfp_touls helper_vfp_touls_powerpc #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_powerpc #define helper_vfp_touqd helper_vfp_touqd_powerpc #define helper_vfp_touqh helper_vfp_touqh_powerpc #define helper_vfp_touqs helper_vfp_touqs_powerpc #define helper_vfp_uhtod helper_vfp_uhtod_powerpc +#define helper_vfp_uhtoh helper_vfp_uhtoh_powerpc #define helper_vfp_uhtos helper_vfp_uhtos_powerpc #define helper_vfp_uitod helper_vfp_uitod_powerpc #define helper_vfp_uitoh helper_vfp_uitoh_powerpc diff --git a/qemu/riscv32.h b/qemu/riscv32.h index e997b6f4..294ed08a 100644 --- a/qemu/riscv32.h +++ b/qemu/riscv32.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_riscv32 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_riscv32 #define helper_vfp_shtod helper_vfp_shtod_riscv32 +#define helper_vfp_shtoh helper_vfp_shtoh_riscv32 #define helper_vfp_shtos helper_vfp_shtos_riscv32 #define helper_vfp_sitod helper_vfp_sitod_riscv32 #define helper_vfp_sitoh helper_vfp_sitoh_riscv32 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_riscv32 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_riscv32 #define helper_vfp_toshh helper_vfp_toshh_riscv32 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_riscv32 #define helper_vfp_toshs helper_vfp_toshs_riscv32 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_riscv32 #define helper_vfp_tosid helper_vfp_tosid_riscv32 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_riscv32 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_riscv32 #define helper_vfp_toslh helper_vfp_toslh_riscv32 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_riscv32 #define helper_vfp_tosls helper_vfp_tosls_riscv32 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_riscv32 #define helper_vfp_tosqd helper_vfp_tosqd_riscv32 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_riscv32 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_riscv32 #define helper_vfp_touhh helper_vfp_touhh_riscv32 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_riscv32 #define helper_vfp_touhs helper_vfp_touhs_riscv32 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_riscv32 #define helper_vfp_touid helper_vfp_touid_riscv32 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_riscv32 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_riscv32 #define helper_vfp_toulh helper_vfp_toulh_riscv32 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_riscv32 #define helper_vfp_touls helper_vfp_touls_riscv32 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_riscv32 #define helper_vfp_touqd helper_vfp_touqd_riscv32 #define helper_vfp_touqh helper_vfp_touqh_riscv32 #define helper_vfp_touqs helper_vfp_touqs_riscv32 #define helper_vfp_uhtod helper_vfp_uhtod_riscv32 +#define helper_vfp_uhtoh helper_vfp_uhtoh_riscv32 #define helper_vfp_uhtos helper_vfp_uhtos_riscv32 #define helper_vfp_uitod helper_vfp_uitod_riscv32 #define helper_vfp_uitoh helper_vfp_uitoh_riscv32 diff --git a/qemu/riscv64.h b/qemu/riscv64.h index e8d83205..1f478b50 100644 --- a/qemu/riscv64.h +++ b/qemu/riscv64.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_riscv64 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_riscv64 #define helper_vfp_shtod helper_vfp_shtod_riscv64 +#define helper_vfp_shtoh helper_vfp_shtoh_riscv64 #define helper_vfp_shtos helper_vfp_shtos_riscv64 #define helper_vfp_sitod helper_vfp_sitod_riscv64 #define helper_vfp_sitoh helper_vfp_sitoh_riscv64 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_riscv64 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_riscv64 #define helper_vfp_toshh helper_vfp_toshh_riscv64 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_riscv64 #define helper_vfp_toshs helper_vfp_toshs_riscv64 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_riscv64 #define helper_vfp_tosid helper_vfp_tosid_riscv64 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_riscv64 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_riscv64 #define helper_vfp_toslh helper_vfp_toslh_riscv64 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_riscv64 #define helper_vfp_tosls helper_vfp_tosls_riscv64 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_riscv64 #define helper_vfp_tosqd helper_vfp_tosqd_riscv64 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_riscv64 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_riscv64 #define helper_vfp_touhh helper_vfp_touhh_riscv64 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_riscv64 #define helper_vfp_touhs helper_vfp_touhs_riscv64 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_riscv64 #define helper_vfp_touid helper_vfp_touid_riscv64 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_riscv64 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_riscv64 #define helper_vfp_toulh helper_vfp_toulh_riscv64 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_riscv64 #define helper_vfp_touls helper_vfp_touls_riscv64 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_riscv64 #define helper_vfp_touqd helper_vfp_touqd_riscv64 #define helper_vfp_touqh helper_vfp_touqh_riscv64 #define helper_vfp_touqs helper_vfp_touqs_riscv64 #define helper_vfp_uhtod helper_vfp_uhtod_riscv64 +#define helper_vfp_uhtoh helper_vfp_uhtoh_riscv64 #define helper_vfp_uhtos helper_vfp_uhtos_riscv64 #define helper_vfp_uitod helper_vfp_uitod_riscv64 #define helper_vfp_uitoh helper_vfp_uitoh_riscv64 diff --git a/qemu/sparc.h b/qemu/sparc.h index f8d0470b..c5282e65 100644 --- a/qemu/sparc.h +++ b/qemu/sparc.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_sparc #define helper_vfp_set_fpscr helper_vfp_set_fpscr_sparc #define helper_vfp_shtod helper_vfp_shtod_sparc +#define helper_vfp_shtoh helper_vfp_shtoh_sparc #define helper_vfp_shtos helper_vfp_shtos_sparc #define helper_vfp_sitod helper_vfp_sitod_sparc #define helper_vfp_sitoh helper_vfp_sitoh_sparc @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_sparc #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_sparc #define helper_vfp_toshh helper_vfp_toshh_sparc +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_sparc #define helper_vfp_toshs helper_vfp_toshs_sparc #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_sparc #define helper_vfp_tosid helper_vfp_tosid_sparc @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_sparc #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_sparc #define helper_vfp_toslh helper_vfp_toslh_sparc +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_sparc #define helper_vfp_tosls helper_vfp_tosls_sparc #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_sparc #define helper_vfp_tosqd helper_vfp_tosqd_sparc @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_sparc #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_sparc #define helper_vfp_touhh helper_vfp_touhh_sparc +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_sparc #define helper_vfp_touhs helper_vfp_touhs_sparc #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_sparc #define helper_vfp_touid helper_vfp_touid_sparc @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_sparc #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_sparc #define helper_vfp_toulh helper_vfp_toulh_sparc +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_sparc #define helper_vfp_touls helper_vfp_touls_sparc #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_sparc #define helper_vfp_touqd helper_vfp_touqd_sparc #define helper_vfp_touqh helper_vfp_touqh_sparc #define helper_vfp_touqs helper_vfp_touqs_sparc #define helper_vfp_uhtod helper_vfp_uhtod_sparc +#define helper_vfp_uhtoh helper_vfp_uhtoh_sparc #define helper_vfp_uhtos helper_vfp_uhtos_sparc #define helper_vfp_uitod helper_vfp_uitod_sparc #define helper_vfp_uitoh helper_vfp_uitoh_sparc diff --git a/qemu/sparc64.h b/qemu/sparc64.h index 4cebf11c..dcc4ccda 100644 --- a/qemu/sparc64.h +++ b/qemu/sparc64.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_sparc64 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_sparc64 #define helper_vfp_shtod helper_vfp_shtod_sparc64 +#define helper_vfp_shtoh helper_vfp_shtoh_sparc64 #define helper_vfp_shtos helper_vfp_shtos_sparc64 #define helper_vfp_sitod helper_vfp_sitod_sparc64 #define helper_vfp_sitoh helper_vfp_sitoh_sparc64 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_sparc64 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_sparc64 #define helper_vfp_toshh helper_vfp_toshh_sparc64 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_sparc64 #define helper_vfp_toshs helper_vfp_toshs_sparc64 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_sparc64 #define helper_vfp_tosid helper_vfp_tosid_sparc64 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_sparc64 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_sparc64 #define helper_vfp_toslh helper_vfp_toslh_sparc64 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_sparc64 #define helper_vfp_tosls helper_vfp_tosls_sparc64 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_sparc64 #define helper_vfp_tosqd helper_vfp_tosqd_sparc64 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_sparc64 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_sparc64 #define helper_vfp_touhh helper_vfp_touhh_sparc64 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_sparc64 #define helper_vfp_touhs helper_vfp_touhs_sparc64 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_sparc64 #define helper_vfp_touid helper_vfp_touid_sparc64 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_sparc64 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_sparc64 #define helper_vfp_toulh helper_vfp_toulh_sparc64 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_sparc64 #define helper_vfp_touls helper_vfp_touls_sparc64 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_sparc64 #define helper_vfp_touqd helper_vfp_touqd_sparc64 #define helper_vfp_touqh helper_vfp_touqh_sparc64 #define helper_vfp_touqs helper_vfp_touqs_sparc64 #define helper_vfp_uhtod helper_vfp_uhtod_sparc64 +#define helper_vfp_uhtoh helper_vfp_uhtoh_sparc64 #define helper_vfp_uhtos helper_vfp_uhtos_sparc64 #define helper_vfp_uitod helper_vfp_uitod_sparc64 #define helper_vfp_uitoh helper_vfp_uitoh_sparc64 diff --git a/qemu/target/arm/helper.h b/qemu/target/arm/helper.h index 86da6c39..76bc5964 100644 --- a/qemu/target/arm/helper.h +++ b/qemu/target/arm/helper.h @@ -162,6 +162,10 @@ DEF_HELPER_2(vfp_tosizh, s32, f16, ptr) DEF_HELPER_2(vfp_tosizs, s32, f32, ptr) DEF_HELPER_2(vfp_tosizd, s32, f64, ptr) +DEF_HELPER_3(vfp_toshh_round_to_zero, i32, f16, i32, ptr) +DEF_HELPER_3(vfp_toslh_round_to_zero, i32, f16, i32, ptr) +DEF_HELPER_3(vfp_touhh_round_to_zero, i32, f16, i32, ptr) +DEF_HELPER_3(vfp_toulh_round_to_zero, i32, f16, i32, ptr) DEF_HELPER_3(vfp_toshs_round_to_zero, i32, f32, i32, ptr) DEF_HELPER_3(vfp_tosls_round_to_zero, i32, f32, i32, ptr) DEF_HELPER_3(vfp_touhs_round_to_zero, i32, f32, i32, ptr) @@ -200,6 +204,8 @@ DEF_HELPER_3(vfp_sqtod, f64, i64, i32, ptr) DEF_HELPER_3(vfp_uhtod, f64, i64, i32, ptr) DEF_HELPER_3(vfp_ultod, f64, i64, i32, ptr) DEF_HELPER_3(vfp_uqtod, f64, i64, i32, ptr) +DEF_HELPER_3(vfp_shtoh, f16, i32, i32, ptr) +DEF_HELPER_3(vfp_uhtoh, f16, i32, i32, ptr) DEF_HELPER_3(vfp_sltoh, f16, i32, i32, ptr) DEF_HELPER_3(vfp_ultoh, f16, i32, i32, ptr) DEF_HELPER_3(vfp_sqtoh, f16, i64, i32, ptr) diff --git a/qemu/target/arm/vfp_helper.c b/qemu/target/arm/vfp_helper.c index 525d872c..d9749500 100644 --- a/qemu/target/arm/vfp_helper.c +++ b/qemu/target/arm/vfp_helper.c @@ -437,92 +437,18 @@ VFP_CONV_FIX_A64(sq, s, 32, float32, 64, int64) VFP_CONV_FIX(uh, s, 32, float32, 32, uint16) VFP_CONV_FIX(ul, s, 32, float32, 32, uint32) VFP_CONV_FIX_A64(uq, s, 32, float32, 64, uint64) +VFP_CONV_FIX(sh, h, 16, dh_ctype_f16, 32, int16) +VFP_CONV_FIX(sl, h, 16, dh_ctype_f16, 32, int32) +VFP_CONV_FIX_A64(sq, h, 16, dh_ctype_f16, 64, int64) +VFP_CONV_FIX(uh, h, 16, dh_ctype_f16, 32, uint16) +VFP_CONV_FIX(ul, h, 16, dh_ctype_f16, 32, uint32) +VFP_CONV_FIX_A64(uq, h, 16, dh_ctype_f16, 64, uint64) #undef VFP_CONV_FIX #undef VFP_CONV_FIX_FLOAT #undef VFP_CONV_FLOAT_FIX_ROUND #undef VFP_CONV_FIX_A64 -uint32_t HELPER(vfp_sltoh)(uint32_t x, uint32_t shift, void *fpst) -{ - return int32_to_float16_scalbn(x, -shift, fpst); -} - -uint32_t HELPER(vfp_ultoh)(uint32_t x, uint32_t shift, void *fpst) -{ - return uint32_to_float16_scalbn(x, -shift, fpst); -} - -uint32_t HELPER(vfp_sqtoh)(uint64_t x, uint32_t shift, void *fpst) -{ - return int64_to_float16_scalbn(x, -shift, fpst); -} - -uint32_t HELPER(vfp_uqtoh)(uint64_t x, uint32_t shift, void *fpst) -{ - return uint64_to_float16_scalbn(x, -shift, fpst); -} - -uint32_t HELPER(vfp_toshh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_int16_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - -uint32_t HELPER(vfp_touhh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_uint16_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - -uint32_t HELPER(vfp_toslh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_int32_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - -uint32_t HELPER(vfp_toulh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_uint32_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - -uint64_t HELPER(vfp_tosqh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_int64_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - -uint64_t HELPER(vfp_touqh)(uint32_t x, uint32_t shift, void *fpst) -{ - if (unlikely(float16_is_any_nan(x))) { - float_raise(float_flag_invalid, fpst); - return 0; - } - return float16_to_uint64_scalbn(x, get_float_rounding_mode(fpst), - shift, fpst); -} - /* * Set the current fp rounding mode and return the old one. * The argument is a softfloat float_round_ value. diff --git a/qemu/x86_64.h b/qemu/x86_64.h index c5bf81ea..a5cf5a80 100644 --- a/qemu/x86_64.h +++ b/qemu/x86_64.h @@ -1932,6 +1932,7 @@ #define helper_vfp_negs helper_vfp_negs_x86_64 #define helper_vfp_set_fpscr helper_vfp_set_fpscr_x86_64 #define helper_vfp_shtod helper_vfp_shtod_x86_64 +#define helper_vfp_shtoh helper_vfp_shtoh_x86_64 #define helper_vfp_shtos helper_vfp_shtos_x86_64 #define helper_vfp_sitod helper_vfp_sitod_x86_64 #define helper_vfp_sitoh helper_vfp_sitoh_x86_64 @@ -1951,6 +1952,7 @@ #define helper_vfp_toshd helper_vfp_toshd_x86_64 #define helper_vfp_toshd_round_to_zero helper_vfp_toshd_round_to_zero_x86_64 #define helper_vfp_toshh helper_vfp_toshh_x86_64 +#define helper_vfp_toshh_round_to_zero helper_vfp_toshh_round_to_zero_x86_64 #define helper_vfp_toshs helper_vfp_toshs_x86_64 #define helper_vfp_toshs_round_to_zero helper_vfp_toshs_round_to_zero_x86_64 #define helper_vfp_tosid helper_vfp_tosid_x86_64 @@ -1962,6 +1964,7 @@ #define helper_vfp_tosld helper_vfp_tosld_x86_64 #define helper_vfp_tosld_round_to_zero helper_vfp_tosld_round_to_zero_x86_64 #define helper_vfp_toslh helper_vfp_toslh_x86_64 +#define helper_vfp_toslh_round_to_zero helper_vfp_toslh_round_to_zero_x86_64 #define helper_vfp_tosls helper_vfp_tosls_x86_64 #define helper_vfp_tosls_round_to_zero helper_vfp_tosls_round_to_zero_x86_64 #define helper_vfp_tosqd helper_vfp_tosqd_x86_64 @@ -1970,6 +1973,7 @@ #define helper_vfp_touhd helper_vfp_touhd_x86_64 #define helper_vfp_touhd_round_to_zero helper_vfp_touhd_round_to_zero_x86_64 #define helper_vfp_touhh helper_vfp_touhh_x86_64 +#define helper_vfp_touhh_round_to_zero helper_vfp_touhh_round_to_zero_x86_64 #define helper_vfp_touhs helper_vfp_touhs_x86_64 #define helper_vfp_touhs_round_to_zero helper_vfp_touhs_round_to_zero_x86_64 #define helper_vfp_touid helper_vfp_touid_x86_64 @@ -1981,12 +1985,14 @@ #define helper_vfp_tould helper_vfp_tould_x86_64 #define helper_vfp_tould_round_to_zero helper_vfp_tould_round_to_zero_x86_64 #define helper_vfp_toulh helper_vfp_toulh_x86_64 +#define helper_vfp_toulh_round_to_zero helper_vfp_toulh_round_to_zero_x86_64 #define helper_vfp_touls helper_vfp_touls_x86_64 #define helper_vfp_touls_round_to_zero helper_vfp_touls_round_to_zero_x86_64 #define helper_vfp_touqd helper_vfp_touqd_x86_64 #define helper_vfp_touqh helper_vfp_touqh_x86_64 #define helper_vfp_touqs helper_vfp_touqs_x86_64 #define helper_vfp_uhtod helper_vfp_uhtod_x86_64 +#define helper_vfp_uhtoh helper_vfp_uhtoh_x86_64 #define helper_vfp_uhtos helper_vfp_uhtos_x86_64 #define helper_vfp_uitod helper_vfp_uitod_x86_64 #define helper_vfp_uitoh helper_vfp_uitoh_x86_64