On 12/15/20 3:38 AM, Bin Meng wrote: >> #if defined(TARGET_RISCV64) >> -uint64_t helper_fcvt_l_s(CPURISCVState *env, uint64_t rs1) >> +target_ulong helper_fcvt_l_s(CPURISCVState *env, uint64_t rs1) >> { >> float32 frs1 = check_nanbox_s(rs1); >> return float32_to_int64(frs1, &env->fp_status); > > float32_to_int64() returns int64_t, so there is a truncation if > changing it to target_ulong for 32-bit.
There's not, because this function isn't defined for 32-bit (see first quoted line). But this point of confusion is exactly what I pointed out vs the previous revision. r~