mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
target-arm: Use correct float status for Neon int-float conversions
The Neon versions of int-float conversions must use the "standard FPSCR" rather than the default FPSCR. Implement this by having the helper functions take a pointer to the appropriate float_status value rather than simply taking a pointer to the entire CPUState, and making translate.c pass a pointer to vfp.fp_status or vfp.standard_fp_status appropriately for whether the instruction being translated is Neon or VFP. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
36802b6b1e
commit
5500b06cb5
3 changed files with 146 additions and 194 deletions
|
@ -96,36 +96,36 @@ DEF_HELPER_3(vfp_cmped, void, f64, f64, env)
|
|||
DEF_HELPER_2(vfp_fcvtds, f64, f32, env)
|
||||
DEF_HELPER_2(vfp_fcvtsd, f32, f64, env)
|
||||
|
||||
DEF_HELPER_2(vfp_uitos, f32, i32, env)
|
||||
DEF_HELPER_2(vfp_uitod, f64, i32, env)
|
||||
DEF_HELPER_2(vfp_sitos, f32, i32, env)
|
||||
DEF_HELPER_2(vfp_sitod, f64, i32, env)
|
||||
DEF_HELPER_2(vfp_uitos, f32, i32, ptr)
|
||||
DEF_HELPER_2(vfp_uitod, f64, i32, ptr)
|
||||
DEF_HELPER_2(vfp_sitos, f32, i32, ptr)
|
||||
DEF_HELPER_2(vfp_sitod, f64, i32, ptr)
|
||||
|
||||
DEF_HELPER_2(vfp_touis, i32, f32, env)
|
||||
DEF_HELPER_2(vfp_touid, i32, f64, env)
|
||||
DEF_HELPER_2(vfp_touizs, i32, f32, env)
|
||||
DEF_HELPER_2(vfp_touizd, i32, f64, env)
|
||||
DEF_HELPER_2(vfp_tosis, i32, f32, env)
|
||||
DEF_HELPER_2(vfp_tosid, i32, f64, env)
|
||||
DEF_HELPER_2(vfp_tosizs, i32, f32, env)
|
||||
DEF_HELPER_2(vfp_tosizd, i32, f64, env)
|
||||
DEF_HELPER_2(vfp_touis, i32, f32, ptr)
|
||||
DEF_HELPER_2(vfp_touid, i32, f64, ptr)
|
||||
DEF_HELPER_2(vfp_touizs, i32, f32, ptr)
|
||||
DEF_HELPER_2(vfp_touizd, i32, f64, ptr)
|
||||
DEF_HELPER_2(vfp_tosis, i32, f32, ptr)
|
||||
DEF_HELPER_2(vfp_tosid, i32, f64, ptr)
|
||||
DEF_HELPER_2(vfp_tosizs, i32, f32, ptr)
|
||||
DEF_HELPER_2(vfp_tosizd, i32, f64, ptr)
|
||||
|
||||
DEF_HELPER_3(vfp_toshs, i32, f32, i32, env)
|
||||
DEF_HELPER_3(vfp_tosls, i32, f32, i32, env)
|
||||
DEF_HELPER_3(vfp_touhs, i32, f32, i32, env)
|
||||
DEF_HELPER_3(vfp_touls, i32, f32, i32, env)
|
||||
DEF_HELPER_3(vfp_toshd, i64, f64, i32, env)
|
||||
DEF_HELPER_3(vfp_tosld, i64, f64, i32, env)
|
||||
DEF_HELPER_3(vfp_touhd, i64, f64, i32, env)
|
||||
DEF_HELPER_3(vfp_tould, i64, f64, i32, env)
|
||||
DEF_HELPER_3(vfp_shtos, f32, i32, i32, env)
|
||||
DEF_HELPER_3(vfp_sltos, f32, i32, i32, env)
|
||||
DEF_HELPER_3(vfp_uhtos, f32, i32, i32, env)
|
||||
DEF_HELPER_3(vfp_ultos, f32, i32, i32, env)
|
||||
DEF_HELPER_3(vfp_shtod, f64, i64, i32, env)
|
||||
DEF_HELPER_3(vfp_sltod, f64, i64, i32, env)
|
||||
DEF_HELPER_3(vfp_uhtod, f64, i64, i32, env)
|
||||
DEF_HELPER_3(vfp_ultod, f64, i64, i32, env)
|
||||
DEF_HELPER_3(vfp_toshs, i32, f32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_tosls, i32, f32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_touhs, i32, f32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_touls, i32, f32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_toshd, i64, f64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_tosld, i64, f64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_touhd, i64, f64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_tould, i64, f64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_shtos, f32, i32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_sltos, f32, i32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_uhtos, f32, i32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_ultos, f32, i32, i32, ptr)
|
||||
DEF_HELPER_3(vfp_shtod, f64, i64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_sltod, f64, i64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_uhtod, f64, i64, i32, ptr)
|
||||
DEF_HELPER_3(vfp_ultod, f64, i64, i32, ptr)
|
||||
|
||||
DEF_HELPER_2(vfp_fcvt_f16_to_f32, f32, i32, env)
|
||||
DEF_HELPER_2(vfp_fcvt_f32_to_f16, i32, f32, env)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue