0002-target-riscv-change-the-api-for-single-double-fmin-f.patch 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. From 97a90c01422b8bc1b685d15d6923a72221bb7275 Mon Sep 17 00:00:00 2001
  2. From: Chih-Min Chao <chihmin.chao@sifive.com>
  3. Date: Wed, 8 Jul 2020 00:32:02 -0700
  4. Subject: [PATCH 002/107] target/riscv: change the api for single/double
  5. fmin/fmax
  6. The sNaN propagation behavior has been changed since
  7. cd20cee7 in https://github.com/riscv/riscv-isa-manual
  8. Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
  9. ---
  10. target/riscv/fpu_helper.c | 8 ++++----
  11. 1 file changed, 4 insertions(+), 4 deletions(-)
  12. diff --git a/target/riscv/fpu_helper.c b/target/riscv/fpu_helper.c
  13. index 7c4ab92ecb..5d2cec3de3 100644
  14. --- a/target/riscv/fpu_helper.c
  15. +++ b/target/riscv/fpu_helper.c
  16. @@ -174,14 +174,14 @@ uint64_t helper_fmin_s(CPURISCVState *env, uint64_t rs1, uint64_t rs2)
  17. {
  18. float32 frs1 = check_nanbox_s(rs1);
  19. float32 frs2 = check_nanbox_s(rs2);
  20. - return nanbox_s(float32_minnum(frs1, frs2, &env->fp_status));
  21. + return nanbox_s(float32_minnum_noprop(frs1, frs2, &env->fp_status));
  22. }
  23. uint64_t helper_fmax_s(CPURISCVState *env, uint64_t rs1, uint64_t rs2)
  24. {
  25. float32 frs1 = check_nanbox_s(rs1);
  26. float32 frs2 = check_nanbox_s(rs2);
  27. - return nanbox_s(float32_maxnum(frs1, frs2, &env->fp_status));
  28. + return nanbox_s(float32_maxnum_noprop(frs1, frs2, &env->fp_status));
  29. }
  30. uint64_t helper_fsqrt_s(CPURISCVState *env, uint64_t rs1)
  31. @@ -283,12 +283,12 @@ uint64_t helper_fdiv_d(CPURISCVState *env, uint64_t frs1, uint64_t frs2)
  32. uint64_t helper_fmin_d(CPURISCVState *env, uint64_t frs1, uint64_t frs2)
  33. {
  34. - return float64_minnum(frs1, frs2, &env->fp_status);
  35. + return float64_minnum_noprop(frs1, frs2, &env->fp_status);
  36. }
  37. uint64_t helper_fmax_d(CPURISCVState *env, uint64_t frs1, uint64_t frs2)
  38. {
  39. - return float64_maxnum(frs1, frs2, &env->fp_status);
  40. + return float64_maxnum_noprop(frs1, frs2, &env->fp_status);
  41. }
  42. uint64_t helper_fcvt_s_d(CPURISCVState *env, uint64_t rs1)
  43. --
  44. 2.33.1